#include"stdio.h"
#include"string.h"
#include"stack"
#include"iostream"
#include"vector"
using namespace std;
char a[5000],b[5000];
int main()
{
int n;
while(scanf("%d",&n)==1)
{
stack<char>Stack;
vector<int>res;
scanf("%s%s",a,b);
int i,j;
j=0;
for(i=0;i<n;i++)
{
Stack.push(a[i]);
res.push_back(1);
while(!Stack.empty()&&Stack.top()==b[j]) //while(Stack.top()==b[j]&&!Stack.empty()) 这个条件判断有点迷注释掉的是错。
{
res.push_back(0);
int t=Stack.top();
//cout<<"top:"<<t<<endl;
Stack.pop();
j++;
}
}
if(!Stack.empty()) puts("No.\nFINISH");
else
{
puts("Yes.");
for(vector<int>::iterator p=res.begin();p!=res.end();p++)
if(*p) puts("in");
else puts("out");
puts("FINISH");
}
}
return 0;
}
HDU 1022 栈
最新推荐文章于 2021-04-24 15:14:10 发布