求助!!
查看原帖
求助!!
487103
123456roc楼主2021/10/16 19:00
#include<iostream>
#include<stack>
using namespace std;
int a[100001];
int b[100001];
int main()
{
	int q;
	int n;
	cin>>q;
	while(q--)
	{
		cin>>n;
		stack<int> s;
		for(int i=1;i<=n;i++)
		  cin>>a[i];
		for(int i=1;i<=n;i++)
		  cin>>b[i];
		int num=1;
		for(int i=1;i<=n;i++)
		{
			s.push(a[i]);
			while((s.top()==b[num])&&!s.empty())//为什么这里不能结束循环呢 
			{
				num++;
				s.pop();
				//if(s.empty())  break;  这样却可以  
			}
		}
		if(!s.size())
		  cout<<"Yes"<<endl;
		else
		  cout<<"No"<<endl;
	}
	return 0;
}
                           
2021/10/16 19:00
加载中...