hdu 1022 Train Problem I
#include<iostream> #include<cstdio> #include<stack> #include<cstring> using namespace std; int nu[10000]; int main() { int n,i,k,p; char in[1000],out[1000]; while(scanf("%d",&n)!=EOF) { memset(nu,0,sizeof(nu)); stack<int > s; cin>>in>>out; k = i =p = 0; while(i < n ) { s.push(in[i++]); //入站 nu[k++] = 1; //记录入站 while(!s.empty()) //下一个入站前是否要先出站 { if(s.top()== out[p]) //要马上出站 { p++; nu[k++] = 0; //记录出站 s.pop(); //出站 } else break; } } if(s.empty()) { printf("Yes.\n"); for(i = 0; i < k; i++) { if(nu[i] == 1) { printf("in\n"); } else { printf("out\n"); } } } else { printf("No.\n"); } printf("FINISH\n"); } return 0; }
补充:软件开发 , C++ ,