字符串next和nextval值的计算

字符串next和nextval值的计算

针对字符串ababaabab,计算nextnextval的值。

  • 第一行是序号,从0开始。

  • 第二行是字符串的元素

  • 第三行是next值,为当前位置前面字符串收尾重复的最长字符个数。

  • 第四行是nextval值,当以next和以i为索引的字符不相同时,nextval值就是next值。当两个字符相同时,nextval值是以next为索引的nextval值。

next 值的计算

举个例子,当i=5时,计算方法如下:

字符串next和nextval值的计算

其中,0和1的next值固定为-1和0.

nextval值的计算

0的nextval值固定为-1

i 0 1 2 3 4 5 6 7 8
s a b a b a a b a b
next -1 0 0 1 2 3 1 2 3
nextval -1 0 -1 0 -1 3 0 -1 0

有时候下标从1开始,则nextval就是010104101.