纯模拟过去,很简单。扫描s里的每一个字母,能在t里面按照先后顺序找到,则输出Yes,否则输出No
用LCS 、 滚动数组啥的 空间不够 或者 麻烦
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
bool flag;
int lena,lenb,i,j,begin;
char s[100000],t[100000],temp;
while(scanf("%s %s",s,t)!=EOF)
{
lena = strlen(s);
lenb = strlen(t);
begin = 0;
for(i=0;i<lena;i++)
{
temp = s[i];
flag = false;
for (j = begin; j< lenb; j++)
{
if (temp == t[j])
{
begin = j+1;
flag = true;
break;
}
}
if (!flag)
{
printf("No\n");
break;
}
}
if (flag)
printf("Yes\n");
}
return 0;
}