[洛谷3375]模板KMP字符串匹配
Posted skylee的OI博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[洛谷3375]模板KMP字符串匹配相关的知识,希望对你有一定的参考价值。
思路:
KMP模板。
1 #include<cstdio> 2 #include<cstring> 3 char s1[1000001],s2[1001]; 4 int main() { 5 scanf("%s%s",s1,s2); 6 int n=strlen(s1),m=strlen(s2); 7 int next[m+1]; 8 next[0]=-1; 9 next[1]=0; 10 int j=0; 11 for(int i=1;i<m;i++) { 12 while(j>=0&&s2[i]!=s2[j]) j=next[j]; 13 next[i+1]=++j; 14 } 15 j=0; 16 for(int i=0;i<n;i++) { 17 while(j>=0&&s1[i]!=s2[j]) j=next[j]; 18 if(++j==m) printf("%d\n",i-m+2); 19 } 20 for(int i=1;i<=m;i++) printf("%d ",next[i]); 21 return 0; 22 }
以上是关于[洛谷3375]模板KMP字符串匹配的主要内容,如果未能解决你的问题,请参考以下文章