• 1051 Pop Sequence (25分)栈


    刷题

    题意:栈的容量是5,从1~7这7个数字,写5个测试数据

    做法:模拟栈

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1010;
    int a[maxn];
    stack<int> st;//不用定义大小呀,
    //题目那也只是意味着,到那个大小你需要判断一下,并不是让你真的构造一个那么样大小的栈,
    //如果要是越界了还会报错,难道你还要写异常不成? 
    int main() {
        int M,N,K;
        cin>>M>>N>>K;
        for(int j=0; j<K; j++) {
            while(!st.empty()){//压根就没想到,要把之前没有清空的栈这样清空 
                st.pop();
            }
            for(int i=0; i<N; i++) cin>>a[i];
            int z=0,flag=1;
            for(int i=1; i<=N; i++) {
                st.push(i);
                if(st.size()>M){//栈的size() 
                    flag=0;
                    break;
                }
                while(!st.empty() &&st.top()==a[z]){//这里没搞明白,第1次写的是if,而不是while 
                //而自己在脑子里的推演也应该是,如果需要出栈就一直出栈的,可写在代码里却不是那样 
                    z++;
                    st.pop();
                }
            }
            if(j!=0)cout<<endl;
            if(flag && st.empty()==true)cout<<"YES";//自己定义的flag是一意味着成功,可是最开始写的时候
            //还是写成了!flag,头脑都僵住了 
            else cout<<"NO";
        }
    }

    唉,好难呀,2021好难呀

  • 相关阅读:
    mojoportal中弹出窗口
    css 层居中
    mojoportal中添加自定义javascript
    C#执行cmd [转载]
    异步委托 学习笔记
    Windows Sysinternals
    有关int,Int32的疑惑解答
    WEB Debug tools汇总
    规范很重要
    [笔记]VGA 接口电阻网络阻抗
  • 原文地址:https://www.cnblogs.com/xx123/p/14337480.html
Copyright © 2020-2023  润新知