首页 > 代码库 > 模板——kmp

模板——kmp

这里简单存一下kmp算法代码

详细思路以后补上

inline void getnxt(){
    for(int i=2,j=0;i<=n;i++){
        while(j&&b[i]!=b[j+1]) j=nxt[j];
        j+=(b[i]==b[j+1]);
        nxt[i]=j;
    } 
}
inline void kmp(){
    for(int i=1,j=0;i<=n;i++){
        while(j&&a[i]!=b[j+1])
            j=next[j];
    j+=(a[i]==b[j+1]);
    if(j==m) printf("%d",i-m+1);
    }
}

 

模板——kmp