G - Train Problem I(模拟题)
来源:互联网 发布:全球碳排放量数据 编辑:程序博客网 时间:2024/05/17 03:01
Description
Input
Output
The output contains a string "No." if you can't exchange O2 to O1, or you should output a line contains "Yes.", and then output your way in exchanging the order(you should output "in" for a train getting into the railway, and "out" for a train getting out of the railway). Print a line contains "FINISH" after each test case. More details in the Sample Output.
这道题目首先要理解它的意思,它是一个类似于栈,但又有点不一样的。
题目意思是:
有两种命令IN,OUT,火车是按照IN的顺序进去的,要你判断能不能以OUT的方式出来;
这里要注意的是不要被样例所给的数据给忽悠了,例如123 321,有些时候并不完完全全是按照顺序输出的。
仔细想想 123 312 ,这组样例,一开始我没明白为什么这个样例是不对的。后来我发现进去肯定是按照123的顺序的,而且3在最上面,1在最下面,所以1是不可能比2先出来的(因为这里只有进去的一条通道,不能再退回到进入的通道中去,这里和栈不一样)
那么 123 213, 这组样例,是可以成功的,命令为“IN IN OUT OUT IN OUT”。
所以这个过程就是模拟每当在栈中进去一个数时,判断已经在栈中的数是不是和OUT命令中的数字相同,若相同,则出栈。
#include<stdio.h>#include<string.h>int main(){int n,top,i,j,k;char in[12],out[12],s[12],d[12];while(scanf("%d",&n)!=EOF){top=0; k=j=0;//主要是看d[]的数组,若它为0,则表示的是out命令,反之是in命令。 scanf("%s%s",in,out);for(i=0;i<n;i++){s[top++]=in[i];d[k++]=1;//这里是关键; while(top>0 && s[top-1]==out[j]) {top--; j++; d[k++]=0;}}//top表示是否已经全部出栈完毕; if(top==0){puts("Yes.");for(i=0;i<k;i++){printf("%s\n",d[i]==0 ? "out":"in");}}else puts("No.");puts("FINISH");}}
- G - Train Problem I(模拟题)
- HDU1022 - Train Problem I (模拟)
- HDOJ题目1022Train Problem I(栈的模拟)
- hdu 1022 Train Problem I(栈的模拟)
- HDU 1022 Train Problem I (模拟栈)
- hdu 1022 Train Problem I(简单模拟+栈)
- HDOJ1022 Train Problem I 栈模拟
- hdu 1022 Train Problem I 栈模拟
- hdu1022 栈的模拟(Train Problem I)
- Train Problem I (栈的模拟)
- Train Problem I(栈)
- Train Problem I(栈)
- 【HDU1022】Train Problem I(栈-好题)
- HDU 1022 Train Problem I 模拟栈题解
- HDU 1022 Train Problem I 栈的模拟
- hdu 1022 Train Problem I(模拟+栈)
- HDU 1022 Train Problem I (STL 栈模拟)
- HDOJ/HDU 1022 Train Problem I(模拟栈)
- 试水微信公众平台开发
- UVA 10714 Ants
- 康托展开和逆康托展开
- 优先队列优化的dijsktra完整代码+路径记录
- 祝大家新年快乐,事业兴旺!
- G - Train Problem I(模拟题)
- HDU 3496 Watch The Movie
- UVA 10954 Add All
- activity状态保存讲解三
- 请使用代码实现java的多继承。
- 【Linux基础笔记】一些感觉重要的基本命令<三>
- 请解释局部内部类和成员内部类都可以被static修饰吗,原因是什么?
- 请问实现多线程有几种方式?他们的区别是什么?
- 数组排序