next數組求解

求解結果

在這裏插入圖片描述

求解過程

首先 :前兩位的next值爲0 和1

求下標爲3的next值 :
字符a的前一位是字符b , b的next值對應的字符爲a(下標爲1),
但b不等於a,所以字符a的next值還爲b的next值1;

求下標爲4的next值 :
字符a的前一位是字符a(下標爲3), a(下標爲3)的next值對應的字符爲a(下表爲1),
a(下表爲3)等於a(下標爲1),所以a(下表爲3)的next值加1爲a(下標爲4)的next值

求下標爲7的next值 :
字符a的前一位是字符c,c的next值對應的字符爲a, c不等於a(下標爲3)
a(下標爲3)的next值對應的字符爲a(下標爲1)
a(下表爲3)等於a(下標爲1)但不等於字符c
所以繼續向左尋找,導致其他情況(找不到)時,next值爲1;所以a(下標爲7)的next值爲1;

就是一直向左 找與前一位字符相等,咋相等,前一位字符的next值對應的字符與前一位字符相等,不相等的話,再找(next值對應的字符的)(next值對應的字符),以相等那個字符的next加1獲得next值,找不到,直接使next值爲1。

比較的只是前一位,加1的是相等的那個next值

摘抄 :

第一位的next值爲0,第二位的next值爲1,後面求解每一位next值時,根據前一位進行比較。首先將前一位與其next值對應的內容進行比較,如果相等,則該位的next值就是前一位的next值加上1;如果不等,向前繼續尋找next值對應的內容來與前一位進行比較,直到找到某個位上內容的next值對應的內容與前一位相等爲止,則這個位對應的值加上1即爲需求的next值;如果找到第一位都沒有找到與前一位相等的內容,那麼需求的位上的next值即爲1。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章