kmp 模板
Posted fzw1523
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kmp 模板相关的知识,希望对你有一定的参考价值。
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<algorithm> #include<iostream> #include<math.h> #include<vector> #include<queue> using namespace std; char x[10000]; char y[1000000]; int Next[10000]; void build_Next(){ int lenx=strlen(x); int j=0,k=-1; Next[0]=-1; while(j<lenx){ if(k==-1||x[j]==x[k]){ j++; k++; Next[j]=k; } else{ k=Next[k]; } } } int zhao(){ build_Next(); int j=0,k=0,ans=0,lenx=strlen(x),leny=strlen(y); while(j<leny){ if(k==-1||x[k]==y[j]){ j++; k++; } else{ k=Next[k]; } if(j==leny){ ans++; k=Next[k]; } } return ans; } int main() { scanf("%s",x); scanf("%s",y); printf("%d ",zhao()); return 0; }
以上是关于kmp 模板的主要内容,如果未能解决你的问题,请参考以下文章