栈:http://blog.csdn.net/zhy_cheng/article/details/8090346
模拟出栈入栈判断即可
#include<cstdio>
#include<stack>
#include<iostream>
using namespace std;
int main()
{
int n,ans[20];
char s1[20],s2[20];
while (cin>>n>>s1>>s2)
{
int i=0,j=0,k=0;
stack<char>stk;
stk.push(s1[0]);
ans[0]=1;
while ((i<=n-1)&&(j<=n-1))
{
if (stk.size()&&stk.top()==s2[j]){stk.pop();ans[++k]=0;j++;}
else
{
if (i==n) break;
stk.push(s1[++i]);
ans[++k]=1;
}
}
if (i==n) printf("No.\n");
else
{
printf("Yes.\n");
for (i=0;i<=k;i++) if (ans[i]) printf("in\n");else printf("out\n");
}
printf("FINISH\n");
}
}