题目描述
求子串的next值,用next数组存放,全部输出
输入
输入一个字符串
输出
输出所有next值
样例输入
abaabcac
样例输出
0 1 1 2 2 3 1 2
#include<stdio.h>
#include<string.h>
int
main()
{
int
j,k,next[20],num;
char
t[20];
scanf
(
"%s"
,t);
num=
strlen
(t);
j=0;k=-1;next[0]=-1;
while
(j<num)
{
if
(k==-1 || t[j]==t[k])
{
j++;k++;
next[j]=k;
}
else
{k=next[k];}
}
for
(j=0;j<num-1;j++)
printf
(
"%d "
,next[j]+1);
printf
(
"%d"
,next[num-1]+1);
return
0;
}