模式串:ababaaaba
next:011234223
方法:
- 前两位是0和1
- 第三位:前一位b对应的next值为1,1对应的a(在数组中第一个数为a)和b不相同,故第三位的next值为1
- 第四位:前一位a对应的next值为1,1对应的a和a相同,故第四位的next是在前一位(第三位)的next上+1,为2
- 第五位:前一位b对应的next值为2,2对应的b和b相同,故第五位的next是前一位(第四位)的next上+1,为3
- 第六位:前一位a对应的next为3,3对应的a和a相同,故第六位的next是前一位(第五位)的next+1,为4
- 第七位:前一位a对应的next为4,4对应的b和a不同,第4位的b的next值2所对应的b和a也不一样,第2位的b的next值1所对应的a和a相同,故第七位的next是滴2位的next值+1,为2
- 第八位:前一位next值为2,2对应的b和a不一样,第二位的b的next值为1,1对应的a和a一样,故第八位的next值是第二位next+1,为2
- 第九位:前一位next为2,对应的b和b相同,故第九位对应的next为第八位+1,为3
[]: 转载自:https://blog.csdn.net/weixin_43984457/article/details/106386243
求nextval数值的方法
模式串 | a | b | a | a | b | c | a | c |
---|---|---|---|---|---|---|---|---|
next值 | 0 | 1 | 1 | 2 | 2 | 3 | 1 | 2 |
nextval值 | 0 | 1 | 0 | 2 | 1 | 3 | 0 | 2 |
- 第一位的nextval值必定为0,第二位如果于第一位相同则为0,如果不同则为1。
- 第三位的next值为1,那么将第三位和第一位进行比较均为a,相同,则,第三位的nextval值为0。
- 第四位的next值为2,那么将第四位和第二位进行比较,不同,则第四位的nextval值为其next值,为2。
- 第五位的next值为2,那么将第五位和第二位进行比较,相同,第二位的next值为1,则继续
将第二位与第一位进行比较,不同,则第五位的hextval值为第二位的next值,为1。 - 第六位的next值为3,那么将第六位和第三位进行比较,不同,则第六位的nextval值为其next
值,为3。 - 第七位的next值为1,那么将第七位和第一位进行比较,相同,则第七位的nextval值为0。
- 第八位的next值为⒉,那么将第八位和第二位进行比较,不同,则第八位的nextval值为其next
值,为2。