`
datoplay
  • 浏览: 1614973 次
文章分类
社区版块
存档分类
最新评论

HDU-1022 Train Problem I

 
阅读更多

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022

题目大意:

给你2个字符串,第一个字符串str1代表火车的入站顺序,第二个字符串str2代表出站序列,如果str1能满足str2的要求,就输出YES。并输入进站出站的顺序。

解题思路:

很裸的栈的应用。只要平时好好想过,就可以写出来。因为C++提供了stack可以用,非常方便的。。。

但是这个题还有一点需要思路,不是全部入站后才能出站,而是进站后,只要是离出站口最近,就可以出站(可以连着多个出站后再入站)。这就需要自己思考到底怎么做了。


我的思路是:

火车进站后则入栈,与出站顺序相比较,如果栈顶元素等于当前出站顺元素,则退栈,出站数+1。这样循环,直到栈顶元素不等于出站元素为止,继续火车进站即可。

如果全部进站并处理后,栈为空,则说明出站顺序可以满足。


代码如下:


自己写的栈实现的。。。

代码如下:



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics