hdu Train Problem I(栈的简单应用)
Problem Description



Input
Output
Sample Input
3 123 321
3 123 312
Sample Output
Yes.
in
in
in
out
out
out
FINISH
No.
FINISH
Hint
So now train 3 is at the top of the railway, so train 3 can leave first, then train 2 and train 1.
In the second Sample input, we should let train 3 leave first, so we have to let train 1 get in, then train 2 and train 3.
Now we can let train 3 leave.
But after that we can't let train 1 leave before train 2, because train 2 is at the top of the railway at the moment.
So we output "No.".
栈的简单应用,输入为一个数n 和两个长度为 n 的字符串,第一个为入站序列 O1,第二个为出站序列 O2,我们只需要判断根据入站序列是否能得到出站序列,如果能救输入可能的出站序列,否则输出NO。
可以知道如果两个序列吻合,进出站顺序唯一,所以就在进站的同时判断能否出站,能则出站,否则继续进站,遍历。。
代码:
#include<iostream>
#include<string.h>
#include<stack>
using namespace std;
int main()
{
int n, i, j, k, flag[50];
char s1[15], s2[15];
stack <char> s;
while(cin>>n>>s1>>s2)
{
while(!s.empty()) //清空栈
s.pop();
memset(flag,-1,sizeof(flag));
j = k = 0;
for(i = 0; i < n; i++)
{
s.push(s1[i]); // 进栈
flag[k++] = 1;// 进栈为1,in
while(!s.empty() && s.top() == s2[j]) //出栈:栈为空或者栈顶元素与出
////站指针所在位置相等
{
flag[k++] = 0;//出栈为0 out
s.pop();
j++;
}
}
if(j == n) //如果 j = n 说明出栈完毕。
{
cout<<"Yes."<<endl;
for(i = 0; i < k; i++)
{
if(flag[i])
cout<<"in"<<endl;
else
cout<<"out"<<endl;
}
}
else
cout<<"No."<<endl;
cout<<"FINISH"<<endl;
}
return 0;
}
hdu Train Problem I(栈的简单应用)的更多相关文章
- HDU Train Problem I (STL_栈)
Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot o ...
- Hdu 1022 Train Problem I 栈
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- train problem I (栈水题)
杭电1002http://acm.hdu.edu.cn/showproblem.php?pid=1022 Train Problem I Time Limit: 2000/1000 MS (Java/ ...
- Train Problem I(栈)
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU Train Problem I 1022 栈模拟
题目大意: 给你一个n 代表有n列 火车, 第一个给你的一个字符串 代表即将进入到轨道上火车的编号顺序, 第二个字符串代表的是 火车出来之后到顺序, 分析一下就知道这,这个问题就是栈, 先进后出吗, ...
- Train Problem(栈的应用)
Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of studen ...
- hdu Train Problem I
这道题是道简单的栈模拟题,只要按照真实情况用栈进行模拟即可: #include<stdio.h> #include<string.h> #include<stack> ...
- HDU1022 Train Problem I 栈的模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 栈的模拟,题目大意是已知元素次序, 判断出栈次序是否合理. 需要考虑到各种情况, 分类处理. 常 ...
- HDU 1702 队列与栈的简单运用http://acm.hdu.edu.cn/showproblem.php?pid=1702
#include<stdio.h> #include<string.h> #include<queue> #include<stack> #define ...
随机推荐
- GNU风格 汇编语法总结(转)
转载自:http://blog.sina.com.cn/s/blog_78d30f6b0101713r.html 汇编源程序一般用于系统最基本的初始化:初始化堆栈指针.设置页表.操作 ARM的协处理器 ...
- 转载: pyExcelerator(Python操作Excel内库)API 文档
1.pyExcelerator 主要通过俩个Object操作Excel: Workbook 和Worksheet2.pyExcelerator 读取Excel文件 parase_xls(filenam ...
- Ruby on Rails Session 2: How to install Aptana Studio 3 on Ubuntu 12.04 LTS
Update: An updated version of these instructions for Ubuntu 12.10 (Quantal Quetzal) is available her ...
- MongoDB库设计原则及实践
MongoDB数据模型选择• CAP定理(Consistency ,Availability 和Partition Tolerance )– Consistency(一致性):数据一致更新,所有数据变 ...
- 001-python基础
1.Python是什么样的语言? 1.1语言的分类: 编译型 解释型 混合型 编译型: 优点:编译器一般会有预编译的过程对代码进行优化. 因为编译只做一次,运行时不需要编译,所以编译型 语言的程序执行 ...
- 探索AutoLayout的本质和解决一些问题
最近频繁使用AutoLayout,记录下自己的一些发现和问题的解决(不是教程) 1.简介 Auto Layout 是苹果在 iOS 6中新引入的布局方式,旨在解决不同尺寸屏幕的适配问题. 屏幕适配工作 ...
- Java中的三目运算符 详解
对于有些选择分支结构,可以使用简单的条件运算符来代替. 如: if(a<b) min=a;else min=b; 可以用下面的条件运算符来处理 min=(a<b)?a:b; 其 ...
- Web资源文件的加载
一.关于页面跳转的一下几种方法: package com.gqx.load; import java.io.IOException; import java.io.PrintWriter; impor ...
- JMeter的基本介绍和入门
1. 介绍 JMeter是Apache组织的开放源代码项目,能做功能测试和性能测试.它能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC),还能以多种形式展 ...
- 自定义toast功能
http://download.csdn.net/detail/caryt/8105031