题目描述
求子串的next值,用next数组存放,全部输出
输入
输入一个字符串
输出
输出所有next值
样例输入
abaabcac
样例输出
0 1 1 2 2 3 1 2
参考代码
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
typedef struct
{
char data[20];
int length;
}
sqstring;
void getnext(sqstring *t,int next[])
{
int j,k;
j=0;
k=-1;
next[0]=-1;
while(j<t->length-1)
{
if(k==-1||(t->data[j]==t->data[k]))
{
j++;
k++;
next[j]=k;
} else
k=next[k];
}
}
int main()
{
int i,a[20];
sqstring *t;
t=(sqstring *)malloc(sizeof(sqstring));
char h[20];
gets(h);
for (i=0;h[i]!='