题解 | 验证栈序列
验证栈序列
https://www.nowcoder.com/practice/d3178fe362dd4810b577c77c9e128fc5
#include<bits/stdc++.h>
using namespace std;
int main(){
int q;
cin>>q;
while(q--){
int n;
cin>>n;
int a[100005],b[100005];
stack<int> st;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
}
int count=0,num=0;
for(;num<n;){
if(st.empty()||st.top()!=b[num]){
st.push(a[count]);
count++;
if(count>n) break;
}
else{
st.pop();
num++;
}
}
if(st.empty()){
cout<<"Yes"<<endl;
}
else cout<<"No"<<endl;
}
return 0;
}
查看5道真题和解析