这个比较简单(相对于前几个题来讲)。
思路
从短的序列的首位开始,一直与长序列相对比,按顺序来,避免了排序的麻烦
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define max 1000000
char s[max];
char t[max];
int contain(char s[],char t[])
{
int sum;
int i,j,c;
int m,n;
m=strlen(s);
n=strlen(t);
c=0;
sum=0;
i=0;
for(j=c; j<n; j++)
{
if(s[i]==t[j])
{
c=j;
sum++;
i++;
continue;
}
}
if(sum==m)
return 1;
else
return 0;
}
int main()
{
int i,j,m,n,len1,len2;
int* mm;
while(scanf("%s %s",s,t)!=EOF)
{
len1=strlen(s);
len2=strlen(t);
if(len1>len2)
{
printf("No\n");
}
else
{
if(contain(s,t))
{
printf("Yes\n");
}
else
printf("No\n");
}
}
}