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

    题目大意: 有一个栈,大小为M,数字1~N依次入栈,给出K个出栈序列,判断该序列是否满足出栈要求
    思路:基本上还是模拟栈的入栈和出栈过程,要注意对于栈容量k的判断
    注意:这道题其实不难,但是要注意虽然是否满足出栈要求这一判断我们在读取一行数据的中间就可以完成但依然要继续读入数据,否则就会发生读取中止导致下一行的读入是这一样未读完的数据,这会造成一些很奇怪的结果

    #include <cstdio>
    #include <stack>
    using namespace std;
    
    const int M = 1010;
    const int N = 1010;
    const int K = 1010;
    stack<int> st;
    
    int main(){
        int m,n,k;
        scanf("%d %d %d",&m,&n,&k);
        int curr;//当前准备输出的数字
        int flag = true;//是否可以得到
        int next = 1;//下一个可以加入的数字,从1开始
        for(int i = 0;i < k;i++){
            while(st.empty()==false) st.pop();
            flag = true;
            next = 1;
            for(int j = 0;j<n;j++){
                scanf("%d",&curr);
                if(st.size()<=m&&next <= curr){//不满
                        while(next<=curr){
                            st.push(next);
                            next++;
                        }
                        if(st.size() > m){//超出限制
                            flag = false;
                            //break; 此处不能break否则会造成一些读取中止的问题
                        }               
                }
                if(st.empty()==false&&st.top()==curr){
                    st.pop();
                }else{
                    flag = false;
                    //break; 此处不能break否则会造成一些读取中止的问题
                }
            }
            if(flag == true) printf("YES
    ");
            else printf("NO
    ");
        }
    }
    
  • 相关阅读:
    linux安装部署Nginx
    一个简单的负载均衡的示例
    NGINX的几个应用场景
    原生的数据库访问和操作
    java中的神奇"this"
    Confluence 6 自定义空间布局
    Confluence 6 可以自定义的元素
    Confluence 6 编辑一个空间的配色方案
    Confluence 6 文档主题合并问答
    Confluence 6 为一个空间应用一个主题
  • 原文地址:https://www.cnblogs.com/shuibeng/p/13593481.html
Copyright © 2011-2022 走看看