为啥得零蛋了
查看原帖
为啥得零蛋了
1478539
shuyang0553楼主2025/8/2 15:11

请问各位大佬为什么得零蛋了

#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main(){
    int q;
    cin>>q;
    while (q--){
        int n;
        cin>>n;
        vector<int> push;
        vector<int> pop;
        for (int i=0;i<n;i++){
            int num;
            cin>>num;
            push.push_back(num);
        }
        for (int i=0;i<n;i++){
            int num;
            cin>>num;
            pop.push_back(num);
        }
        stack<int> st;
        int i=0,j=0;
        for (;i<push.size();i++){
            if (push[i]==pop[j]) j++;
            else if (!st.empty()&&st.top()==pop[j]){
                st.pop();
                j++;
                st.push(push[i]);
            }
            else st.push(push[i]);
        }
        while (!st.empty()&&st.top()==pop[j]){
            st.pop();
            j++;
        }
        if (!st.empty()) cout<<"No";
        else cout<<"Yes";
        cout<<endl;
    }
    return 0;
}
2025/8/2 15:11
加载中...