Description
求子串的next值,用next数组存放,全部输出
Input
输入一个字符串
Output
输出所有next值
Sample Input
abaabcac
Sample Output
0 1 1 2 2 3 1 2
HINT
Source
AC代码:
#include <iostream>
#include<string.h>
#include<cstdio>
using namespace std;
int i,j,len;
int next[101];
char a[101];
int main()
{
cin>>a;
len=strlen(a);//string类用a.length()函数
int i=0,j=-1;
next[0]=-1;
while(i<len)
{
if(j==-1||a[i]==a[j])
{
i++;
j++;
//if(a[i]!=a[j])
// next[i]=j;
// else
next[i]=j;
}
else
j=next[j];
}//已经算出了next数组
i=0;
while(i<len)
{
cout<<next[i]+1<<" ";
i++;
}
return 0;
}