火车站(stack)
题目描述
火车站只有一条铁路,所有的火车都停在那里。所以所有的火车都是从一边进站,从另一边出站。如果A列先进入铁路,然后B列在A列离开之前进入铁路,那么A列在B列离开之前不能离开。下图说明了问题所在。车站里最多有9列火车,所有的火车都有一个ID(编号从1到N),火车按照O1的顺序进入火车,火车是否可以按照O2的顺序驶出。
输入
输入包含几个测试用例。
每个测试用例由一个整数(列车数)和两个字符串组成。两个字符串分别为列车入站顺序和列车出站顺序。
输出
如果不能按照指定顺序出站,输出“No”。
如果可以,输出“Yes”,然后输出出入站顺序(对于进入铁路的列车,应输出“in”,对于出铁路的列车,应输出“out”)。在每个测试用例之后打印一行包含“FINISH”。
输入样例1
3
3 123 321
3 abc cab
3 123 123
输出样例1
Yes
in
in
in
out
out
out
FINISH
No
FINISH
Yes
in
out
in
out
in
out
FINISH
#include<iostream>
#include<stack>
#include<vector>//类似于数组,比数组好的是,不需要初始化
#include<cstring>
using namespace std;int main() {int t;int len;string inword,outword;//进来的和出去的字符cin >> t;while (t--) {cin >> len >> inword >> outword;stack<char>s;vector<string>show;//显示输出样例in out,也可以选择用stack,但是要正序输出,需要两个堆栈,所以考虑用vectorint p1 = 0, p2 = 0;//标志位,遍历in和out的wordwhile (p2 != len) {//只要p2没有遍历到长度,就是没有完全出完while (p1 < len && inword[p1] != outword[p2]) {//没有完全入完,并且进来的和出去的顺序不一致,就只能进入s.push(inword[p1++]);//把当前位加入s里面show.push_back("in");//并告知容器,此时为进入}if (p1 == len) {//走到了len,说明p1+++++到了len,竟然不是因为in=out跳出的循环,说明没救了!不可能相等。break;}if (inword[p1] == outword[p2]) {//刚进来就能出去,跳出上面一个while;一般情况下都能走到这一步。p1++;p2++;//比较他们的下一位show.push_back("in");show.push_back("out");//说明他们来过且出去了}while (!s.empty() && s.top() == outword[p2]) {//当栈里面还有火车,并且栈顶就是目标要出去的show.push_back("out");//让他出去s.pop();//栈指向下一位p2++;//p2也指向下一个}}if (s.empty() && p2 == len) {//栈内的火车都出去了,并且走到了最后一个要出栈的位置cout << "Yes" << endl;//说明此时出栈成功for (int i = 0; i < show.size(); i++) {cout << show[i] << endl;//输出in,out}}else {cout << "No" << endl;}cout << "FINISH" << endl;}
}
火车站(stack)相关推荐
- B: 火车站(stack)
题目描述 火车站只有一条铁路,所有的火车都停在那里.所以所有的火车都是从一边进站,从另一边出站.如果A列先进入铁路,然后B列在A列离开之前进入铁路,那么A列在B列离开之前不能离开.下图说明了问题所在. ...
- 1880: wjw的火车站(栈)
1880: wjw的火车站 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 140 Solved: 72 [Submit][Status][Web Boa ...
- (stack栈)rails
题目: 某城市有一个火车站,铁轨铺设如图所示,有n节车厢从A方向驶入车站,按进站顺序编号为1至n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶出车站.为了重组车厢,你可以借助中转站 ...
- HDU 1022 Train Problem I stack 基础题
题意: 有一个火车站,只有一个口同时用于进入和出去,但不能有2辆或以上同时进出. 给出一个n代表有n辆火车(n<=9),编号分别为1到n. 然后给出2个序列,分别代表火车进站的顺序,火车出站的顺 ...
- 题目描述: 某城市有一个火车站,铁轨铺设如图所示。 有n节车厢从A方向驶入车站,按进站顺序编号1~n。 现让这些火车按照某种特定的顺序进入B方向的铁轨并驶出车站。 为了重组车厢,可以借助中转站C。
题目描述: 某城市有一个火车站,铁轨铺设如图所示. 有n节车厢从A方向驶入车站,按进站顺序编号1-n. 现让这些火车按照某种特定的顺序进入B方向的铁轨并驶出车站. 为了重组车厢,可以借助中转站C. C ...
- 车厢调度(train.cpp) 问题描述 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节
车厢调度(train.cpp) [问题描述] 有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n<=1000),分别按照顺序 ...
- 数据结构:栈(stack容器)使用详解
栈(stack容器)使用详解 一.栈的基本概念 1. 栈的基本定义 2.栈的相关概念 3.栈的常用操作 二.栈的操作应用 UVA514 铁轨 Rails 题目描述 输入格式 输出格式 题目翻译 题目分 ...
- Java多线程案例:模拟12306火车站售票系统
Java多线程案例:模拟12306火车站售票系统 该系统一共涉及到3个类: 车票(Ticket) 12306系统(System12306) 售票窗口(Window) 车票类,涉及三个属性: 起始站 终 ...
- Docker入门六部曲——Stack
原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...
最新文章
- conda 装tensorboardx_【工欲善其事】TensorboardX的使用
- SERVICE问题解决方法
- bootstrap 表格不用tr td如何写_Pandas还能用来写爬虫?
- Java中的ThreadLocal的使用--学习笔记
- Linux 系统应用编程——网络编程(基础篇)
- 《Cracking the Coding Interview》——第6章:智力题——题目4
- 【博客项目】—用户删除功能(十二)
- 21.卷1(套接字联网API)---多播
- 关于静态事件 static event 的二三事
- python编写agent_python实现Agent守护进程
- 基于PCA的ORL人脸库特征抽取
- 如何制作媲美memz的炫酷特效恶搞程序
- C2. Skyscrapers (hard version)
- javascript:void(0)的作用
- CPU的主频/核心数
- 我的世界java版变形模组下载_我的世界变形模组
- spring(春天)
- 【CS231n】五、卷积神经网络简介CNN学习笔记
- 关于PTA题目集1-3的总结
- ios-block-对象与对象之间的解偶合
热门文章
- android 图片浏览器 布局,Android实现网络图片浏览器
- 2022长城杯Reverse-baby_reWP
- MATLAB实现EMD分解及希尔伯特谱分析
- sql 语句NVL()用法
- 2018年中国规模以上工业企业利润增长10.3%
- 《Towards Viewpoint Invariant 3D Human Pose Estimation》--深度图领域人体姿态估计的CNN算法
- Linux 拷贝文件:cp 命令
- python将想要打印的数据输出到txt文件中,打印省略号里面的内容
- pnpm_什么是pnpm?
- HCIP(华为高级网络安全工程师)(第一天)(HCIA知识复习)