Uva铁轨 (p140, 栈)
Posted karshey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Uva铁轨 (p140, 栈)相关的知识,希望对你有一定的参考价值。
输入样例:
5
1 2 3 4 5
5 4 1 2 3
0
6
6 5 4 3 2 1
0
0
输出样例:
Yes
No
Yes
翻译:
做了三次:
1、两个queue一个stack,Runtime Error。
2、用数组模拟queue,一个stack。先把queue全输入,WA。
3、看了书,while里四个if,简洁。
#include<iostream>
#include<stack>
using namespace std;
int main()
{
int n,b[1005],a1,b1,flag;
while(cin>>n)
{
if(n==0) return 0;
int temp;
while(cin>>temp)
{
if(temp==0)
{
cout<<endl;
break;
}
//Yes or No
a1=1;
b1=1;
flag=0;
b[1]=temp;
for(int i=2;i<=n;i++)
{
cin>>b[i];
}
stack<int>c;
while(b1<=n)
{
if(b[b1]==a1)
{
b1++;
a1++;
}
else if(c.size()&&b[b1]==c.top())
{
b1++;
c.pop();
}
else if(a1<=n)
{
c.push(a1);
a1++;
}
else
{
flag=1;
break;
}
}
if(flag) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
}
return 0;
}
以上是关于Uva铁轨 (p140, 栈)的主要内容,如果未能解决你的问题,请参考以下文章