题目大意:
给两个字符串s和t,判断s是否是t的子串
解题思路:
暴力求解法
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char s[100010],t[100010];
int vis[100010];
int i,j,k,flag,mark;
while(scanf("%s%s",s,t)!=EOF)
{
memset(vis,0,sizeof(vis));
k=flag=0;
for(i=0;i<strlen(s);i++)
{
if(strlen(t)-k<strlen(s)-i)
{
flag=1;break;
}
mark=0;
for(j=k;j<strlen(t);j++)
{
if((s[i]==t[j])&&(!vis[j]))
{
mark=1;
k=j+1;
break;
}
}
if(!mark)
{
flag=1;
break;
}
}
if(flag)
{
printf("No\n");
}
else
{
printf("Yes\n");
}
}
return 0;
}