题意:
有一个火车站,只有一个口同时用于进入和出去,但不能有2辆或以上同时进出。
给出一个n代表有n辆火车(n<=9),编号分别为1到n。
然后给出2个序列,分别代表火车进站的顺序,火车出站的顺序。
问按照这个进站的顺序,能不能按照这个出站的顺序出站。
若能,输出这个口进出的顺序。
Sample Input
3 123 321
3 123 312
Sample Output
Yes.
in
in
in
out
out
out
FINISH
No.
FINISH
直接用stack进行模拟就OK了。
只要确定好什么情况下为Yes,什么情况下为No。
1 #include2 #include 3 #include 4 using namespace std; 5 char in[12]; 6 char out[12]; 7 int ans[24]; 8 int main() 9 {10 int n;11 while(scanf("%d",&n)!=EOF)12 {13 scanf("%s",in+1);14 scanf("%s",out+1);15 memset(ans,-1,sizeof(ans));16 stack s;17 while(!s.empty())18 s.pop();19 int i=1,j=1;20 s.push(in[i]);21 int tot=1;22 ans[tot++]=0;23 bool flag=false;24 while(i