解题思路:

一个进站出站的操作案例

注意事项:
1.出栈不是要等所有都进栈后才能出栈,比如进栈4321,4进栈后不等3进栈就出栈,这样虽然4先进,但也是先出,就可以形成4321的出栈顺序。我们在编写这道题时应该注意这一点,边进行进栈,边考虑是否要出栈(刚学习栈的可能会考虑不到)。2.输入是输入多组数据,没有限制,要进行循环输入,没有上限。3.输出Yes或No后有“.”。
参考代码:

#include

#include

#include

#include

using namespace std;

int main()

{

 string traincome, traingo;//traincome代表输入的进栈顺序,traingo代表输入的出栈顺序

 int n;//n代表火车的数量

while (cin>>n>>traincome>>traingo)//循环输入

{

int p = 0;//方便访问字符串traingo的内容

list

stack

for (int i = 0; i < n; i++)//进行进栈和出栈的操作

{

Traincome.push(traincome[i]);

L.push_back(1);

while (Traincome.top() == traingo[p])//每次进栈后,进行判断是否需要出栈。

{

p++;//不要写在在while判断中(traingo[p++]),因为即使没有进行出栈,p也会自加。

Traincome.pop();

L.push_back(0);

if (Traincome.empty())

{

break;

}

}

}

if (Traincome.empty())//如果栈为空代表输入案例正确

{

cout << "Yes."<<endl;

for (list

{

if (*it == 1)

{

cout << "in"<<endl;

}

else

{

cout << "out"<<endl;

}

}

}

else

{

cout << "No."<<endl;

}

cout << "FINISH"<<endl;

}




return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论