您的位置:首页 > 大数据 > 人工智能

hdu 1022 Train Problem I 简单堆栈

2013-07-14 14:51 441 查看
#include<iostream>
#include<string>
#include<stack>
using namespace std;

int main()
{
int n, i, j, k;
bool p[102];//0出桟1进桟
char c1[102], c2[102];//c1进桟序列,c2出栈序列
while(cin >> n >> c1 >> c2)
{
i=j=k=0;
stack<char>train;
while(j < n)
{
if(!train.empty() && train.top() == c2[j])//如果桟不为空且顶端为c2
{
j++;
train.pop();//出栈
p[k++] = 0;
}
else
{
if(i == n) break;
train.push(c1[i++]);//压栈
p[k++] = 1;
}
}
if( j!=n)
cout << "No." << endl;
else
{
cout << "Yes." << endl;
for( i=0; i < k; i++)
{
if(p[i])
cout << "in" << endl;
else
cout << "out" << endl;
}
}
cout << "FINISH" << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: