社区讨论
数组模拟全WA,求调
P4387【深基15.习9】验证栈序列参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m6lyevul
- 此快照首次捕获于
- 2025/02/01 16:51 去年
- 此快照最后确认于
- 2025/11/04 10:07 4 个月前
CPP
#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;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...