求助 悬关

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

Furukawa_Nagisa @ 2024-01-15 22:41:42

0分awa 求调

#include<bits/stdc++.h>
using namespace std;
int main(){ 
int t,n,v[100003],tot=1;
cin>>t;
for(int i=0;i<t;i++){
    cin>>n;int p[100003];
    stack<int>a;int x;
    for(int j=0;j<n;j++){
        cin>>x;
        a.push(x);  
    }
    for(int j=0;j<n;j++)cin>>p[j];
    for(int j=0;j<n;j++){
        if(a.top()!=p[j]){
            cout<<"No\n";tot=0;break;
        }
        a.pop();
    }
    if(tot) cout<<"Yes\n";
} 
    return 0;
}

by LF1402946929 @ 2024-01-16 23:23:41

这个栈的输入序列的数据不是指一次性全部输入再逐个取出得到输出序列,有可能是在输入过程中取出数据。比如说输入序列1 2 3 4,可以对应输出序列2 1 4 3,在1 2进栈后取出2 1,再进栈3 4取出4 3即可得到输出序列,输出YES


|