20分代码求助

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

sxttty @ 2024-10-04 17:04:48

#include<bits/stdc++.h>
using namespace std;
stack<int> k;
int a[110],r[100100],s[100100];

int main(){
    int q,n;
    cin>>q;
for(int i=0;i<q;i++){
    cin>>n;
    for(int j=0;j<n;j++) cin>>r[j];
    for(int j=0;j<n;j++) cin>>s[j];
    int t=0 ;
    for(int j=0;j<n;j++){
        k.push(r[j]);
        while(!k.empty()&& k.top()==s[t]&&t<n){
            k.pop();
            t++;
        }   
    }
    if (k.empty())a[i]=1;
    else a[i]=-1;
    }
for(int i=0;i<q;i++){
    if (a[i]==1)cout<<"Yes"<<endl;
    else cout<<"No"<<endl;}
    return 0;   }

by zxrsfa @ 2024-10-04 17:07:21

@sxttty 你的 k 没清空


by sxttty @ 2024-10-04 17:13:18

@zxrsfa 谢谢您


|