数组模拟全WA,求调
查看原帖
数组模拟全WA,求调
1529998
CyberRuoNing楼主2025/2/1 16:50
#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<stack>
using namespace std;
//题意要求验证是否是先进后出的栈序列
int q,n,tmp;
int a[100005];
//找左右两侧最近的没用过的
int main(){
    cin>>q;
    while(q--){
      cin>>n;
      int l=0,r=0,now=0;
      int c=0;
      memset(a,0,sizeof(a));
      for(int i=1;i<=n;i++){
          cin>>a[i];
      }
      //验证输入的序列正确性
      for(int i=1;i<=n;i++){
        cin>>tmp;
        //i==1时的初始化
        if(i==1){
          for(int j=1;j<=n;j++){
            if(a[j]==tmp){now=j;break;}
          }
          l=now-1;r=now+1;
        }
        //一般情况向两侧查找
        else{
          if(tmp==a[l]){
            now=l;l=l-1;
          }
          else if(tmp==a[r]){
            now=r;r=r+1;
          }
          else c=1;
        }
      }
      if(c==0)cout<<"Yes"<<endl;
      else cout<<"No"<<endl;
    }
    return 0;
}
2025/2/1 16:50
加载中...