为什么好像这种做法有问题?
查看原帖
为什么好像这种做法有问题?
692647
tanghg楼主2022/7/8 12:00

rt,我认为好像没有问题,但是我看题解好像都是用数组做的,我不太清楚这种做法的错误,还请帮忙指出,谢谢您。

#include <iostream>
#include <stack>
using namespace std;
typedef long long ll;
stack<ll>a;
ll n,q,A;
int main() {
    cin>>q;
    for(int i=0;i<q;i++){
        cin>>n;
        for(int j=0;j<n;j++){
            cin>>A;
            a.push(A);
        }
        for(int j=0;j<n;j++){
            cin>>A;
            if(A!=a.top()){
                break;
            }
            a.pop();
            if(a.empty()){
                break;
            }
        }
        if(a.empty()){
            cout<<"Yes"<<endl;
       }else{
        cout<<"No"<<endl;
       }
       while(!a.empty()){
            a.pop();
       }
    }
    return 0;
}
2022/7/8 12:00
加载中...