hdu 1022

来源:互联网 发布:手机蓝牙驱动软件 编辑:程序博客网 时间:2024/05/16 10:36

题目大意:现在只有1个火车站,有1~9至多9辆火车需要停站,只有前面的火车出去了后面的才能出去。输入火车数量,每辆火车的编号,火车的出站顺序,问能否按输入的出站顺序出站?

栈的运用,可以用数组模拟。

#include <stdio.h>#include <string.h>int main(){char f[10]//火车编号,f_[10]//出站顺序,stack[10]//模拟栈;int num[20]//临时标记,n,i,j,k,l;while(scanf("%d",&n)!=EOF){memset(f,'0',sizeof(f));memset(f_,'0',sizeof(f_));memset(stack,'0',sizeof(stack));memset(num,0,sizeof(num));getchar();for(i=0;i<n;i++){scanf("%c",&f[i]);}getchar();for(i=0;i<n;i++){scanf("%c",&f_[i]);}getchar();j=k=l=0;for(i=0;i<n;i++){stack[k]=f[i];l++;while(stack[k]==f_[j]){num[l]=1;j++;k--;l++;}k++;}if(num[2*n-1]==1){printf("Yes.\n");for(i=0;i<2*n;i++){if(num[i]==0)printf("in\n");elseprintf("out\n");}}elseprintf("No.\n");printf("FINISH\n");}return 0;}


0 0
原创粉丝点击