zoukankan      html  css  js  c++  java
  • 1051 Pop Sequence (25 分)

    对于一个序列,每输入一个数t,如果栈不为空,就判断它与栈顶是否相等,如果等,栈顶出栈,判断下一个数;如果不等,在栈的大小允许范围内,将index入栈,每入栈一次判断一次t与

    栈顶是否相等。

    如果序列是符合要求的,最后的栈一定是空的,所以只要在处理完序列后判断栈有没有空即可知道序列对不对。

     1 int main() {
     2     int m, n, k, size, index; cin >> m >> n >> k;
     3     for (int i = 0; i < k; ++i) {
     4         size = 0, index = 1;
     5         stack<int> s;
     6         for (int j = 0; j < n; ++j) {
     7             int t; cin >> t;
     8             while (size <= m) {
     9                 if (!s.empty() && t == s.top()) {
    10                     size--;
    11                     s.pop();
    12                     break;
    13                 }
    14                 else {
    15                     s.push(index++);
    16                     ++size;
    17                 }
    18             }
    19         }            
    20         if (s.empty())  cout << "YES" << endl;
    21         else cout << "NO" << endl;
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    弹性布局、动画、过渡
    HTML
    数据库对象
    函数
    oracle与PL/SQL安装
    网络编程
    多线程
    联调接口
    vue 全局变量
    vue ajax请求
  • 原文地址:https://www.cnblogs.com/2020R/p/14487501.html
Copyright © 2011-2022 走看看