一道字符串匹配的题目,一直wrong answer,求指出一下错误在哪!
Input第一行是一个整数N,说明有多少个测试用例。
接下来是N个测试用例,每个测试用例占2行:第一行是字符串S,第二行是字符串T,字符串中不含空格。 1 ≤ strlen(S) , strlen( T ) ≤ 10000
Output
对每个测试用例,输出一行结果:是否子串,是则输出"yes" ,否则输出 "no"。
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
char a[10005]={},b[10005]={};
scanf("%s",&a);
scanf("%s",&b);
int t=strlen(a)-strlen(b);
int d=strlen(b);
if(t<0){
printf("no\n");
}
else{
int j=0,y=1;
for(int i=0;i<strlen(a);i++){
if(a[i]==b[j]){
j++;
if(j==d){
printf("yes\n");
y=0;
break;
}
}
else{
j=0;
if(a[i]==b[j]){
j++;
}
}
}
if(y){
printf("no\n");
}
}
}
return 0;
}
wrong answer。。。求指出错误出在哪里?