#include<iostream> #include<cstdio> using namespace std; int next[8]; void getnext(char s[],int len){ next[0]=-1; int j=-1; for(int i=1;i<len;i++){ while(j!=-1&&s[j+1]!=s[i]){ j=next[j]; } if(s[j+1]==s[i]){ j++; } next[i]=j; } } int main(){ char a[8] ="abababc"; int len=7; getnext(a,len); for(int i=0;i<len;i++){ cout<<next[i]; } cout<<endl; return 0; }