全WA求助(玄关)

P4387 【深基15.习9】验证栈序列

mairuisheng @ 2024-08-11 17:45:51

哪里错了?
#include<stack>
#include<cstdio>
using namespace std;
stack<int> s;
int n,k;
int a[100001],b[100001];
bool rejudge()
{
    while(!s.empty())
    {
        if(s.top()!=b[k])return false;
        k++;
        s.pop();
    }
    return true;
}
int main()
{
    int q,i,j;
    scanf("%d",&q);
    for(i=1;i<=q;i++)
    {
        scanf("%d",&n);
        for(j=0;j<n;j++)scanf("%d",&a[j]);
        for(j=0;j<n;j++)scanf("%d",&b[j]);
        for(j=0;j<n;j++)
        {
            if(j!=0)
            {
                if(s.top()==b[k])
                {
                    s.pop();
                    k++;
                }
            }
            s.push(a[j]);
        }
        if(k!=n)
        {
            if(rejudge())puts("Yes");
            else puts("No");
        }
        else if(k==n)puts("Yes");
    }
    return 0;
}

测试结果:全WA


by 奈芙蓮 @ 2024-08-11 19:35:24

每个询问 k 要归零


by mairuisheng @ 2024-08-12 15:54:15

@stemdarrenyang 谢谢,问题已解决,已关,此帖结。


|