博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa514 Rails (栈)
阅读量:4341 次
发布时间:2019-06-07

本文共 1126 字,大约阅读时间需要 3 分钟。

题意:一列有n节车厢的火车按顺序进站,给你一个出站顺序,问你该火车的车厢能否以该顺序出站?

分析:出站的车厢满足后进先出的关系,所以我们考虑采用栈s

假设车厢一共有n节,n = 5;

进站顺序A:1 2 3 4 5

出站顺序B/target: 2 3 4 5 1

如果进站的车厢没有立马出站,则将该车厢入栈s.push(A++)

判断栈里面车厢的顺序是否和出站顺序一致 s.top()==  target[B] 

 

#include
#include
using namespace std;int main(){ int n,target[1005]; stack
s; while(~scanf("%d",&n)&&n) { while(1){ int flag = 0; for(int i=1;i<=n;i++) { scanf("%d",&target[i]); if(target[i] == 0) { flag = -1; break; } } if(flag == -1) { printf("\n"); break; } int A=1,B=1; while(B <= n) { if(A == target[B]){A++;B++;} else if(!s.empty()&&s.top()==target[B]){B++;s.pop();} else if(A <= n) s.push(A++); else {flag =-1; break;} } if(flag == -1) printf("No\n"); else printf("Yes\n"); } } return 0;}

 

转载于:https://www.cnblogs.com/LLLAIH/p/10374331.html

你可能感兴趣的文章
ultraedit激活
查看>>
总结(6)--- python基础知识点小结(细全)
查看>>
亿级曝光品牌视频的幕后设定
查看>>
ARPA
查看>>
JSP开发模式
查看>>
我的Android进阶之旅------&gt;Android嵌入图像InsetDrawable的使用方法
查看>>
Detours信息泄漏漏洞
查看>>
win32使用拖放文件
查看>>
Android 动态显示和隐藏软键盘
查看>>
raid5什么意思?怎样做raid5?raid5 几块硬盘?
查看>>
【转】how can i build fast
查看>>
null?对象?异常?到底应该如何返回错误信息
查看>>
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>
图论知识,博客
查看>>
[原创]一篇无关技术的小日记(仅作暂存)
查看>>
20145303刘俊谦 Exp7 网络欺诈技术防范
查看>>
原生和jQuery的ajax用法
查看>>
iOS开发播放文本
查看>>
20145202马超《java》实验5
查看>>