题目链接: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 解题报告相关推荐

  1. HDU 1022[Train Problem I] 栈的应用

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022 题目大意:一列序列为s1的车厢是否能通过车站的中转以序列s2出站.白皮上有. 关键思想:栈的应用 ...

  2. hdu 1022 Train Problem I(栈)

    标记现在已经匹配到o1的第几列车了,o2从头开始,如果不匹配把o1就放入栈中,匹配后出栈并比较栈顶与o1的下一辆,匹配继续出,不匹配就继续进栈 1 #include <iostream> ...

  3. HDU 1022 Train Problem I stack 基础题

    题意: 有一个火车站,只有一个口同时用于进入和出去,但不能有2辆或以上同时进出. 给出一个n代表有n辆火车(n<=9),编号分别为1到n. 然后给出2个序列,分别代表火车进站的顺序,火车出站的顺 ...

  4. 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1022 [报告] 模拟,直接模拟一个栈的运行就行了. [程序] // Task: 1022 Train P ...

  5. hdu 1023 Train Problem II

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1212 Train Problem II Description As we all know the ...

  6. HDOJ 1002 A + B Problem II 解题报告

    今天研究 1002,,,搞得半死,虽说是一道简单的题目,真正做起来绝不是很容易的... A + B Problem II Time Limit: 2000/1000 MS (Java/Others)  ...

  7. codeforces 814B.An express train to reveries 解题报告

    题目链接:http://codeforces.com/problemset/problem/814/B 题目意思:分别给定一个长度为 n 的不相同序列 a 和 b.这两个序列至少有 i 个位置(1 ≤ ...

  8. hdu 1312 Red and Black 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...

  9. 【ACM】杭电1022:Train Problem I

    分析: 明显是一个栈的问题.利用栈后进先出的特点模拟火车进站出站的过程即可轻松解决. 我的思路是: 用2个字符数组保存火车车厢的序列.首先比较出站后(记为s2)数组和出站前 (记为s1)数组的第一个元 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第8期)
  2. 百篇大计敬本年之系统篇《八》—— Ubuntu16.04 挂载windows的 NTFS 文件系统时错误的解决方法...
  3. C# 之 用NPOI类库操作Excel
  4. 程序员技术练级攻略(转载)
  5. Apache PLC4X开发者向企业下最后通牒:如不提供资助将停止支持
  6. 获取Http请求参数
  7. [转]软件开发的“三重门”
  8. 在VBA中实现通过Outlook发送邮件
  9. 难道现在是保险业的高速发展期?
  10. C语言入门教程,C语言学习教程
  11. Python一行流:列举所有k-mer组合(最简单写法)
  12. api多版本方案(URL)
  13. Visual Studio 2017美化(修改字体,图片背景)
  14. Linux下编写C语言
  15. applicationContext-job
  16. 流星滑落-第13届蓝桥杯Scratch省赛1真题第2题
  17. Java基础学习过程
  18. WPS表格excel实现下拉搜索(简单几步,轻松搞定)
  19. 为评职称!走捷径花钱发论文?骗你没商量!
  20. 记一次服务器被攻击经历

热门文章

  1. Oracle查询一个用户的所有表的结构信息的SQL语句
  2. F#学习之路(3) 如何组织程序(下)
  3. MySQL(7)数据库中的高级(进阶)语句:VIEW视图、联集和常见计算
  4. php动态删除输入框,jQuery实现动态添加和删除input框实例代码
  5. 1109: 胥哥的DOTA-水题(直接做,时间也不超限)
  6. 首次公开开源PolarDB的总体结构设计和企业级特性
  7. 无影云电脑居家办公最佳实践(便捷账号)
  8. 282天,汇付天下“冲上云霄”
  9. 你不知道的CDN圈内黑话有哪些?
  10. linux下多个db2,Linux下安装多个DB2副本