hdoj1022 Train Problem I(栈的简单应用)

来源:互联网 发布:淘宝联盟 推广位管理 编辑:程序博客网 时间:2024/06/13 00:56

题目很长,大意是给你两个序列,要你判断是否能够通过入栈出栈操作将第一个序列变为第二个序列。

考察栈的简单运用。

#include<iostream> using namespace std;int main(){char s1[12],s2[12],stack[12];int top,n,i,j,k;int gg[22];while(cin>>n>>s1>>s2){top=-1;j=k=0;memset(gg,0,sizeof(gg));for(i=0;i<n;i++){stack[++top]=s1[i];gg[k++]=0;//进栈,gg[k++]=0代表in操作。while(stack[top]==s2[j]&&top!=-1){gg[k++]=1;j++;top--;//出栈,1代表out操作。}}if(j==n){cout<<"Yes."<<endl;for(i=0;i<k;i++)if(gg[i]==0)cout<<"in"<<endl;else cout<<"out"<<endl;cout<<"FINISH"<<endl;}elsecout<<"No."<<endl<<"FINISH"<<endl;}return 0;}


原创粉丝点击