kmp-getNext

#include <iostream>
using namespace std;
void getNext(char a[]){
    int k=-1,i=0,next[10];
    next[0]=-1;
    while(a[i]!='\0'){
        if(k==-1 || a[i]==a[k]){
            next[++i]=++k;
        }
        else{
            k=next[k];
        } 
    }
    for(int i=0;i<10;i++)
        cout<<next[i]<<'\t';
    cout<<endl;
} 
int main(){
    char a[]="abcabd";
    getNext(a);
}

 

posted on 2021-05-17 10:05  ewitt  阅读(50)  评论(0编辑  收藏  举报

导航