题目:
分析:第一眼看去,啊,直接逆序。
脑补其他的基础栈题。哦,明白了,顺序进去,随时出去。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m;
cin>>m;
for(int mi=0;mi<m;mi++)
{
int n;
cin>>n;
vector<int> v1;
vector<int> v2;
int c;
for(int i=0;i<n;i++) { cin>>c; v1.push_back(c); };
for(int i=0;i<n;i++) { cin>>c; v2.push_back(c); };
stack<int> q;
c=0;
for(int i=0;i<n;i++)
{
if(v2[c]==v1[i]) {
c++;
while(!q.empty())
{
int t=q.top();
if(t!=v2[c]) break;
c++;
q.pop();
}
}
else q.push(v1[i]);
}
if(q.empty()) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}