全WA求助,附注释
查看原帖
全WA求助,附注释
264548
Tangent233楼主2020/9/5 17:04
#include<bits/stdc++.h>
using namespace std;
stack <int> s;
int p[100010],o[100010];
void c(void)
{
    while(!s.empty())
    {
        s.pop();
    }
}
int main()
{
    int q;
    cin>>q;
    for(int i=1;i<=q;i++)
    {
        int n;
        cin>>n;
        int a;
        for(int i=1;i<=n;i++) cin>>p[i];
        for(int i=1;i<=n;i++) cin>>o[i];
        int flag=1//输入输出
        for(int i=1;i<=n;i++)
        {
            if(p[i]==o[flag]) flag++;
            else s.push(p[i]);
        }//如果入栈的同时可以出栈,就出栈
        bool k=1;
        while(!s.empty())
        {
            if(s.top()==o[flag])
            {
                s.pop();
                flag++;
            }
            else
            {
                k=0;
                cout<<"No"<<endl;
                break;
            }
        }//能否按照剩下的数列出栈
        if(k) cout<<"Yes"<<endl;
        c();//清空栈
    }
    return 0;
}

暂时还没找到不符合代码的情况,请求指教

2020/9/5 17:04
加载中...