一、求next数组的值:
- 第一位的next值必为0,第二位的next值必为1;
- 前一位字符与其next值对应的字符比较,若相等,则该位的next值就是前一位的next值加1;
- 若不等,向前继续寻找对应的字符与前一位进行比较,直到找到某位上的内容的next值对应的内容与前一位相等为止,则这个位对应的next值加1即为所求next值;
- 若找到第一位都没有与前一位相等的内容,那么所求的位上的next值为1。
二、求nextval数组的值:
- 第一位的nextval值必为0,第二位若与第一位相等则为0,不等则为1;
- 当前位字符与其next值对应的字符比较,若不等,则该位的nextval值就是当前位的next值;
- 若相等,向前继续寻找对应的字符与当前位相比较,直到找到某位上的内容的next值对应的内容与当前位不等为止,则这个位对应的next值即为所求nextval值;
- 若找到第一位都没有与当前位不等的内容,那么所求的位上的nextval值为0。
三、 求next数组的方法与求nextval数组的方法进行对比:
- next前两位值固定;nextval第一位值固定。
- next求的是与前一位字符相等的情况;nextval求的是与当前位字符不等的情况。
- next找到相等情况时,那一位的next要加1;nextval找到不等情况时,那一位的next值即为nextval的值;
- next未找到相等情况,next值为1;nextval未找到不等情况,next值为0。