有没有大佬救救只有20分的孩子qwq,给点数据也行啊

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

jijijibeibeibei @ 2023-07-21 08:59:25

#include<iostream>//p4387超时 
#include<stack>
#include<string.h>
using namespace std;

int n,q,num,num2,pan=0,pan1=1,lk=0;
int main(){
    cin>>q;
    for(int i=1;i<=q;i++){
        cin>>n;//序列长度
        int a[n+1],c[n+1]; 
        bool pan3[n+1];//用于判断这个数有没有进过栈 
        memset(pan3,0,sizeof(pan3));
        stack<int>b;
        for(int j=0;j<n;j++){
            cin>>a[j];//入栈顺序 
        }
        for(int j=0;j<n;j++){
            cin>>c[j];//出栈顺序 
        }
        for(int j=0;j<n;j++){
            if(pan3[j]==0)b.push(a[j]);pan3[j]=1;//没有用过,标记,压入栈顶 
            if(b.top()!=c[j]){//栈顶与出栈顺序不同 
                lk=j;
                while(pan1){
                    lk+=1;b.push(a[lk]);pan3[lk]=1;//让入栈的下一位入栈,并标记 
                    if(b.top()==c[j]){//若栈顶与出栈顺序中的相同 
                        pan1=0;b.pop();break;//则出栈,并弹出 
                    }
                    if(lk>n){pan=1;pan1=0;}//从头到尾都不合格 
                }pan1=1;
                if(pan==1)break;
            }else{
                b.pop();//相同则直接弹出,到下一个 
            }
        }memset(pan3,0,sizeof(pan3));
        if(pan==1){
            pan=0;
            cout<<"No"<<endl;
        }else{
            cout<<"Yes"<<endl; 
        }

    }
    return 0;
}

by Carl170679 @ 2023-07-21 09:24:52

#include<iostream>
#include<stack>
using namespace std;
const int N=1e5+5;
int pushed[N], popped[N];
int main(){
    int q;
    cin>>q;
    while(q--){
        int n;
        cin>>n;
        for(int i=0;i<n;i++)cin>>pushed[i];
        for(int i=0;i<n;i++)cin>>popped[i];
        stack<int> s;
        int i=0,j=0;
        while(i<n||!s.empty()){
            if(s.empty()||s.top()!=popped[j]){
                if(i==n) break;
                s.push(pushed[i++]);
            }
            else{
                s.pop();
                j++;
            }
        }
        if(s.empty())cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    return 0;
}
                              //这里是我的代码,希望能帮到你

by jijijibeibeibei @ 2023-07-21 17:27:45

@Carl0626 完了,从第四行就不懂了


|