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(通过入栈、入栈、出栈、出栈、入栈、出栈达成)