字符串next和nextval值的计算
针对字符串ababaabab
,计算next
和nextval
的值。
-
第一行是序号,从0开始。
-
第二行是字符串的元素
-
第三行是
next
值,为当前位置前面字符串收尾重复的最长字符个数。 -
第四行是
nextval
值,当以next
和以i
为索引的字符不相同时,nextval
值就是next
值。当两个字符相同时,nextval
值是以next
为索引的nextval
值。
next 值的计算
举个例子,当i=5
时,计算方法如下:
其中,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
.