一、求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。