wmwycs @ 2023-01-09 20:00:38
#include <iostream>
using namespace std;
int q,n,pushed[100005],poped;
int main()
{
cin>>q;
for(int i=1;i<=q;i++){
cin>>n;
bool flag=true;
for(int j=0;j<n;j++){
cin>>pushed[n-j];
}
for(int j=1;j<=n;j++){
cin>>poped;
if(poped!=pushed[j]){
flag=false;
}
}
if(!flag){
printf("No\n");
}else{
printf("Yes\n");
}
}
return 0;
}
by ud2_ @ 2023-01-09 20:12:59
不一定全部入栈之后才开始出栈。
push 1
pop
push 2
pop
这样操作后得到的出栈序列是 1 2
而不是 2 1
。
by wmwycs @ 2023-01-09 20:22:48
@ud2_ 奥,get到点了,谢谢