hdu 1022 Train Problem I 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022
其实是一道上数据结构课讲过的例题 只不过当时讲的是怎么用手算 一道水题又花了好长时间 其实就是栈的模拟 相当于数据结构的练习题 利用栈的先进后出的顺序 先将数进栈 等到合适的时候不停地出栈 在进栈 最后看看栈是否为空 如果能全部出栈栈为空 输出路径 否则无法实现 记录路径 我用了一个队列 其实可以使用数组 不过想到先进先出首先想到了队列queue 使用各种数据结构的时候一定要注意多次使用时要清空结构 还有就是要考虑空的情况 STL 有点使人变懒了 希望以后自己能少用吧
粘代码:
1 #include<iostream> 2 #include<stack> 3 #include<string> 4 #include<string> 5 #include<queue> 6 #define in 1 7 #define out 0 8 using namespace std; 9 int main()10 { queue<bool> road;11 stack<char> ans;12 string begin,end;13 int num,i,j;14 while(cin>>num>>begin>>end)15 {16 17 while(!ans.empty())18 ans.pop();19 i=0;20 j=0;21 /* cout<<num<<endl;22 cout<<begin<<endl;23 cout<<end<<endl; */24 for(i=0;i<num;i++)25 {26 if(j>=num)27 break; 28 ans.push(begin[i]);29 road.push(in);30 while(!ans.empty()&&ans.top()==end[j])// 最开始的时候没考虑ans是空的情况看看测试交了 结果数组越界 31 {32 ans.pop();33 road.push(out);34 j++;35 if(j>=num)36 {break;}37 } 38 }39 if(ans.empty())40 {41 cout<<"Yes."<<endl;42 while(!road.empty())43 { if(road.front()==1)44 cout<<"in"<<endl;45 else46 cout<<"out"<<endl;47 road.pop();48 }49 cout<<"FINISH"<<endl;50 }51 else52 {53 cout<<"No."<<endl;54 cout<<"FINISH"<<endl;//这最悲剧了 没仔细看题 no的后面没输出finish WA了 55 while(!road.empty())//清空路径 56 road.pop();57 while(!ans.empty())58 ans.pop();59 } 60 }61 // system("pause");62 return 0;63 }
转载于:https://www.cnblogs.com/yujiaao/archive/2011/10/29/2228696.html
hdu 1022 Train Problem I 解题报告相关推荐
- HDU 1022[Train Problem I] 栈的应用
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022 题目大意:一列序列为s1的车厢是否能通过车站的中转以序列s2出站.白皮上有. 关键思想:栈的应用 ...
- hdu 1022 Train Problem I(栈)
标记现在已经匹配到o1的第几列车了,o2从头开始,如果不匹配把o1就放入栈中,匹配后出栈并比较栈顶与o1的下一辆,匹配继续出,不匹配就继续进栈 1 #include <iostream> ...
- HDU 1022 Train Problem I stack 基础题
题意: 有一个火车站,只有一个口同时用于进入和出去,但不能有2辆或以上同时进出. 给出一个n代表有n辆火车(n<=9),编号分别为1到n. 然后给出2个序列,分别代表火车进站的顺序,火车出站的顺 ...
- 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1022 [报告] 模拟,直接模拟一个栈的运行就行了. [程序] // Task: 1022 Train P ...
- hdu 1023 Train Problem II
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1212 Train Problem II Description As we all know the ...
- HDOJ 1002 A + B Problem II 解题报告
今天研究 1002,,,搞得半死,虽说是一道简单的题目,真正做起来绝不是很容易的... A + B Problem II Time Limit: 2000/1000 MS (Java/Others) ...
- codeforces 814B.An express train to reveries 解题报告
题目链接:http://codeforces.com/problemset/problem/814/B 题目意思:分别给定一个长度为 n 的不相同序列 a 和 b.这两个序列至少有 i 个位置(1 ≤ ...
- hdu 1312 Red and Black 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...
- 【ACM】杭电1022:Train Problem I
分析: 明显是一个栈的问题.利用栈后进先出的特点模拟火车进站出站的过程即可轻松解决. 我的思路是: 用2个字符数组保存火车车厢的序列.首先比较出站后(记为s2)数组和出站前 (记为s1)数组的第一个元 ...
最新文章
- 力扣(LeetCode)刷题,简单题(第8期)
- 百篇大计敬本年之系统篇《八》—— Ubuntu16.04 挂载windows的 NTFS 文件系统时错误的解决方法...
- C# 之 用NPOI类库操作Excel
- 程序员技术练级攻略(转载)
- Apache PLC4X开发者向企业下最后通牒:如不提供资助将停止支持
- 获取Http请求参数
- [转]软件开发的“三重门”
- 在VBA中实现通过Outlook发送邮件
- 难道现在是保险业的高速发展期?
- C语言入门教程,C语言学习教程
- Python一行流:列举所有k-mer组合(最简单写法)
- api多版本方案(URL)
- Visual Studio 2017美化(修改字体,图片背景)
- Linux下编写C语言
- applicationContext-job
- 流星滑落-第13届蓝桥杯Scratch省赛1真题第2题
- Java基础学习过程
- WPS表格excel实现下拉搜索(简单几步,轻松搞定)
- 为评职称!走捷径花钱发论文?骗你没商量!
- 记一次服务器被攻击经历
热门文章
- Oracle查询一个用户的所有表的结构信息的SQL语句
- F#学习之路(3) 如何组织程序(下)
- MySQL(7)数据库中的高级(进阶)语句:VIEW视图、联集和常见计算
- php动态删除输入框,jQuery实现动态添加和删除input框实例代码
- 1109: 胥哥的DOTA-水题(直接做,时间也不超限)
- 首次公开开源PolarDB的总体结构设计和企业级特性
- 无影云电脑居家办公最佳实践(便捷账号)
- 282天,汇付天下“冲上云霄”
- 你不知道的CDN圈内黑话有哪些?
- linux下多个db2,Linux下安装多个DB2副本