我 不 理 解!全wa

P4387 【深基15.习9】验证栈序列

liang302 @ 2021-11-15 11:17:34

#include <iostream>
#include <stack>
#define max 100005
using namespace std;

int p,n;

int x,l;
int main() {
    int t;
    cin>>t;
    while(t--) {
        cin>>l;
        n=l;
        stack<int>q;
        //压入栈中 
        while(n--) {
            cin>>x;
            q.push(x);
        }
        n=l;
        int flag=1;

        //输出判断 
        while(n--) {
            cin>>x;
            if(!q.empty()) {
                //当栈顶元素等于输入的元素 则 栈顶元素出栈
                //当栈底元素不等于输入元素 则flag为0来输出no 
                if(x!=q.top()) {
                    flag=0;
                }
                q.pop();
            }

        }

        if(flag) cout<<"Yes"<<endl;
        else cout<<"No"<<endl;

        flag=1;//保证下次循环开始flag是1
    }

    return 0;
}

by DAI33DAI @ 2021-11-15 11:27:22

题意理解有误

按照题目的意思,入栈是 1 2 3 时,出栈可能是 2 1 3(通过入栈、入栈、出栈、出栈、入栈、出栈达成)


|