#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int* KMP_Next(char*,int&);
int Chuan_KMP(char*,char*);
int main() {
char String_rands[100];
for(int i=0; i < 100; i++)
String_rands[i] = 97 + rand()%26;
String_rands[99] = '\0';
cout<<String_rands;
cout<<endl;
for(int i = 0; i < 19; i++)
cout<<'-';
cout<<endl;
int num = 0;
int *t = KMP_Next("ababaaababaa\0",num);
for(int i = 0 ; i < num-1 ; i ++)
cout<<t[i];
cout << "Hello JSRUN! \n\n - from C++ ." << endl;
return 0;
}
int KMP_PD(char* a,char* b,int num){
for(int i = 0; i < num ; i ++){
if(a[i]!=b[i]) return 0;
}
return 1;
}
int* KMP_Next(char* str1,int& i){
while(str1[i++]!='\0');
int* Sum = new int[i];
for(int j = 0;j<i-1;j++){
int num = 0;
for(int k = 0; k < j;k++)
if(KMP_PD(&str1[0],&str1[j-k],k+1)) num=k+1;
Sum[j+1] = num+1;
}
Sum[0] = 0;
return Sum;
}
int Chuan_KMP(char* a,char *b){
return -1;
}