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