#include <stdio.h>
int main () {
char str1[] = "abcabeeeabcabc"
char str2[] = "abcab";
int str1_len = strlen(str1);
int str2_len = strlen(str2);
int next[str2_len];
int next_len = sizeof(next) / sizeof(int);
next[0] = 0;
int j = 0,i = 1;
while (i < str2_len){
if(str2[i] == str2[j]){
next[i] = ++j;
i++;
}else{
if(j == 0){
next[i] = 0;
i++;
}else{
j = next[j-1];
}
}
}
j = 0;
i = 0;
while (i < str1_len) {
if (str1[i] == str2[j]) {
j++;
i++;
} else if (j > 0) {
j = next[j - 1];
} else {
i++;
}
if (j == next_len) {
puts("含子串");
break;
}
}
for(int i = 0;i<str2_len;++i){
printf("%c",i);
}
}