栈与队列
2016-07-13 14:49
253 查看
从A队列进入,以C站作为中转,从B队列中输出,判断是否合法的输出结果
#include<iostream> #include<stack> using namespace std; #define MAX 100 int main() { int target[MAX]; int A=1,B=1,n; stack<int> s; while((cin>>n)) { for(int i=1;i<=n;i++) cin>>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;} } cout<<ok?"Yes":"No"; cout<<endl; return 0; } }
相关文章推荐
- Java中HashMap遍历的两种方式
- 静态内部类和内部类的区别
- hql相关
- node 模块 fs-extra
- js对象排序&&倒序
- DNS 原理入门
- 关于js判断鼠标移入元素的方向——上下左右
- LeetCode-Self Crossing
- php中fsockopen模仿post与get详解
- 硬件设计规范
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2) D 双向dp
- SSM框架 +MYSQL数据库 配置事务控制的方法和注意点
- update maven之后jre被改成1.5的问题
- Android 热修复 - AndFix 使用心得
- 文字 jquery文字动画插件LetterFX 7种不同变换效果
- linux 下查看机器是cpu是几核的(转)
- Spring MVC中,事务是否可以加在Controller层
- go tool proof
- 我不是产品经理-005
- 验证出错,错误码:230,请AndroidManifest.xml文件中检查 kye 设置。