本文主要是介绍杭电OJ 1022:Train Problem I,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个题目主要就是模拟出栈和入栈,其实不难就是有点麻烦。话不多说,直接上代码:
#include <stdio.h>
#include <stack>
using namespace std;
int main(){int n;int in[10],out[10];stack<int> S;int result[20];char t1[10],t2[10];while(scanf("%d\n",&n)!=EOF){while(S.empty()==false)S.pop();scanf("%s",t1);scanf("%s",t2);for(int i=0;i<n;i++){in[i]=t1[i]-'0';out[i]=t2[i]-'0';}int index=0,rindex=0;bool flag=true;for(int i=0;i<n;i++){if(flag==false)break;flag=false;if(S.empty()==true){while(index<n){S.push(in[index]);result[rindex++]=1;if(in[index]==out[i]){flag = true;index++;result[rindex++]=0;S.pop();break;}index++; }}else{if(S.top()==out[i]){result[rindex++]=0;S.pop();flag=true;}else{while(index<n){S.push(in[index]);result[rindex++]=1;if(in[index]==out[i]){flag=true;index++;result[rindex++]=0;S.pop();break;}index++;}}}}if(flag==false){printf("No.\nFINISH\n");}else{printf("Yes.\n");for(int i=0;i<rindex;i++){if(result[i]==0){printf("out\n");}elseprintf("in\n");}printf("FINISH\n");}}return 0;
}
这篇关于杭电OJ 1022:Train Problem I的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!