/*
题目大概意思:有N辆火车,以序列1方式进站,判断是否能以序列2方式出栈。进站不一定是一次性进入,也就是说中途可以出站。
举出一列数据 7 1234567 4321576
上面数据应该是 in in in in out out out out in out in in out out;
*/
#include <iostream>
#include <cstdio>
#include <stack>
using namespace std;
int main(){
char str1[100], str2[100];
int n, result[200];
while( scanf( "%d%s%s", &n, str1, str2 ) != EOF ){
stack<char> s;
int i, j, k;
i = j = k = 0;
s.push( str1[i++] );
result[k++] = 1;
while( i <= n && j < n ){
if( s.size() && s.top() == str2[j] ){
result[k++] = 0;
j++;
s.pop();
}else{
if( i == n ){
break;
}
s.push( str1[i++] );
result[k++] = 1;
}
}
if( s.size() ){
cout << "No." << endl;
}else{
cout << "Yes." << endl;
for( i = 0; i < k; i++ ){
if( result[i] ){
cout << "in" << endl;
}else{
cout << "out" << endl;
}
}
}
cout << "FINISH" << endl;
}
return 0;
}
hdu 1022 栈
最新推荐文章于 2021-04-24 15:14:10 发布