字符串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.