http://wenku.baidu.com/link?url=giJqnvsvpuiJf8t8q50xyYW0vEhUgITo52tWMgErtwijZIWCK_XWlylHoxbRzU_E-8SkBvEvI_sViAneSY6es1SxayDSc9FyjlEp50Cp1Oy
例子:
下标:0 1 2 3 4 5 6 7
串:a b a a b c a c
固定的前两个数的开始为0 1,所以有
下标:0 1 2 3 4 5 6 7
串:a b a a b c a c
next[j]:0 1 **********
因为next数组的计算是与当前模式串的最长公共前后缀有关,所以计算下标为2,
串值为a的next值是找它之前子串(ab)的最长公共前后缀,因为没有公共串所以为
1,所以有:
下标:0 1 2 3 4 5 6 7
串:a b a a b c a c
next[j]:0 1 1
下标为3字符为a的位置前最长前缀子串为a,最长后缀子串为a,所以next[3]为2,故
下标:0 1 2 3 4 5 6 7
串:a b a a b c a c
next[j]:0 1 1 2
以此类推最后为:
下标:0 1 2 3 4 5 6 7
串:a b a a b c a c
next[j]:0 1 1 2 2 3 1 2