请编程判断判断:按给定的出站顺序,火车能否出站。
#include<stack>头文件,STL中的很有用的容器适配器之一,默认基于Deque容器实现,可以在定义时覆盖其默认容器类型,但一般并不需要。包含以下几个成员函数:empty() 堆栈为空则返回真pop() 移除栈顶元素(不会返回栈顶元素的值)push() 在栈顶增加元素size() 返回栈中元素数目top() 返回栈顶元素
5
1 2 3 4 5
Yes
5
5 4 1 2 3
No
#include<cstdio>#include<stack>using namespace std;const int MAXN=100+10;int n,target[MAXN];int main(){ while(scanf("%d",&n)==1) { stack<int> s; int A=1,B=1; for(int i=1;i<=n;i++) scanf("%d",&target[i]); int ok=1; while(B<=n) { if(A==target[B]) { A++; B++; } else if(!s.empty()&&s.top()==target[B]) {s.pop();B++;} else if(A<=n) s.push(A++); else {ok=0;break;} } PRintf("%s/n",ok?"Yes":"No"); } return 0;}
新闻热点
疑难解答