C++用栈解决列车问题。请问哪里错了

qq_37241619 2017-04-30 06:15:29
所有的火车从一边从另一边出来。对于这个问题,如果火车先进入铁路,然后火车在火车出发前进入铁路,火车A不能离开,直到火车B离开。下面的图片解决了这个问题。现在你的问题是,在车站有9列火车,所有的火车都有一个ID(从1到n),火车以O1的顺序进入铁路,你的任务是确定火车是否可以在一个订单O2中下车。

输入
输入包含几个测试用例。每个测试用例由一个整数、列车数和两个字符串组成,列车的顺序是:O1,火车的顺序是:O2。输入在文件的末尾终止。在示例输入中有更多的细节。
输出
输出包含一个字符串“No”。如果你不能把O2交换到O1,或者你应该输出一条线,就会包含“Yes”。然后在交换订单的时候输出你的方式(你应该输出“in”来表示火车进入铁路,以及“出”火车出铁路)。在每个测试用例后打印一行包含“FINISH”。示例输出中有更多的细节。
Sample Input
3 123 321
3 123 312
Sample Output
Yes.
in
in
in
out
out
out
FINISH
No.
FINISH

#include <iostream>
#include<stack>
#include<string.h>
using namespace std;

int main()
{
int i,j,n,c;
char O1[10],O2[10];
while(cin>>n)
{
cin>>O1>>O2;
stack<int>is;
for(j=1,c=0;j<=n;j++)
{
is.push(j);
while(is.top()==O2[c])
{
if(!is.empty())
{
c++;
is.pop();
}
if(is.empty())
break;
}
}
cout<<c<<endl;
if(n==c)
{
cout<<"Yes.\n";
for(i=0;i<n;i++) cout<<"in\n";
for(i=0;i<n;i++) cout<<"out\n";
cout<<"FINISH\n";
}
else cout<<"NO.\n"<<"FINISH\n";
}
return 0;
}
...全文
258 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-05-02
  • 打赏
  • 举报
回复
百度搜相关关键字。

64,688

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧