Description给定一个源串s和n个子串stri。判断stri是否是s的子串。Input输入数据有多组,对于每组测试数据 第一行源串S(S长度小于100000),第二行一个整数n, 表示下面有n个查询,每行一个字符串str。Output若str是S的子串,输出 yes 否则输出 noSample Input: acmicpczjnuduzongfei3icpcduliuSample Output:yesyesno我的代码:#include<stdio.h>#include<string.h>int next[100000];void get_next(char *T,int next[]){ int i=0;next[0]=-1;int j=-1; while(i<strlen(T)-1){ if(j==-1||T[i]==T[j]){++i;++j;next[i]=j;} else j=next[j]; }}int Index_KMP(char *S,char *T){ int i=0;int j=0; while(i<=strlen(S)-1&&j<=strlen(T)-1){ if(j==-1||S[i]==T[j]){++i;++j;} else j=next[j]; } if(j>strlen(T)-1)return i-strlen(T)+1; else return -1;}int main(){ char S[100000],T[100000]; int n,i; while(scanf("%s",S)!=EOF){ scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%s",T); get_next(T,next); if(Index_KMP(S,T)!=-1)printf("yes\n"); else printf("no\n"); } }}我的问题:我觉得我的代码没有问题,但是就是答案错误,望大佬帮帮忙!