https://vjudge.net/problem/UVA-514
判断出栈是否合法的方法- - 从出栈顺序找入栈顺序倒推一遍 简单模拟 == 若这个数先出栈 就入栈中一直入到可以找到这个数为止
#include<bits/stdc++.h>
using namespace std;
stack<int > s;
int n,j,x,z;
int main()
{
while(
cin>>n&&n){
z=
1;
while(
1&&z){
while(s.size()) s.pop();
for(
int i=
0,j=
1;i<n;i++){
scanf(
"%d",&x);
while(s.empty()||s.top()!=x&&j<=n) s.push(j++);
if(s.top()==x) s.pop();
if(!x) {z=
0;
printf(
"\n");
break;}
}
if(z)
printf(
"%s\n",s.empty()?
"Yes":
"No");
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-36325.html