本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022
本题主要使用的是栈,让所要判断的数据一个个进栈,判断是否与出栈数据相等,若相等,则使其出栈,继续判断其他数据,若不等,使其继续进栈。
AC代码:
#include<stdio.h>
#include<string.h>
char str1[100],str2[100];
char str[100];
int result[100];
int main()
{
int n,i,j,k,top;
while(scanf("%d",&n)!=EOF)
{
scanf("%s%s",str1,str2);
i=j=k=0;
top=1;
for(;i<n;i++)
{
str[top++]=str1[i];
result[k++]=1;
while(top>1&&(str[top-1]==str2[j]))
{
top--;
j++;
result[k++]=0;
}
}
if(j==n)
{
printf("Yes.\n");
for(i=0;i<k;i++)
{
if(result[i]==0)
printf("out\n");
else printf("in\n");
}
}
else
{
printf("No.\n");
}
printf("FINISH\n");
}
return 0;
}