自主问题--KMP算法
再预处理数组时p[i]表示的在模式串前i个字符中前缀和后缀最大公共长度
//例如下模式串
ababa p[1]=0; p[2]=1; p[3]=2; p[4]=2; p[5]=3;
在kmp时,移动j要用while
输入
char a[10],b[10]; cin>>a+1>>b+1;
KMP时判断字符是否相等要+1
while(j>0&&s1[i+1]!=s2[j+1]) j=p[j]; if(s1[i+1]==s2[j+1]) { j++; }
if(j==m) { printf("%d\n",i-m+2); j=p[j]; }
要预处理匹配串和模式串的长度。