这题线性扫描一遍不就可以了么。
代码如下
#include <stdio.h>
#include <string.h>
void main()
{
int lena,lenb,i,j;
char a[100001],b[100001];
while (scanf("%s%s",a,b)!=EOF)
{
i=j=0;
while(b[j])
if(a[i]==b[j++])
i++;
if(a[i])
printf("No\n");
else
printf("Yes\n");
}
}