给定两个字符串s和t,判断s是否是t的子序列。即从t中删除一些字符,将剩余的字符连接起来,即可获得s。
输入格式:
输入文件包括多组测试数据,每组测试数据占一行,包括两个由ASCII码组成的字符串s和t,它们的长度都不超过100000。
输出格式:
对于每个测试数据输出一行,如果s是t的子序列,则输出“Yes”,否则输出“No”。
输入样例:
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter
输出样例:
Yes
No
Yes
No
解题代码:
#include <stdio.h>
#include <string.h>
int main()
{
int i,j;
char a[100000],b[100000];
while(scanf("%s %s",a,b)!=EOF)
{
for(i=0,j=0;a[i]!='\0';i++)
{
for(;b[j]!='\0';j++)
if(a[i]==b[j])
break;
if(j==strlen(b))
break;
}
if(i<strlen(a)-1)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}