關於KMP算法中next和nextval的算法思路

一,關於next的求法

就是比較從0到當前值減一是否有相同值(即正着看和倒着看對比),最後結果加一。

直接上圖:

求abaabc的next值和aabaabaabaac的next值

留一個小問題可以自己試着做一下,串“ababaaababaa”的next值爲011234223456。

 

二,關於nextval的求法

nextval根據next值求,如果x位置和next[x]的字符相同,則nextval[x]=nextval[next[x]],否則nextval[x]=next[x]

(或者可以理解爲相同則變,不同不變)

直接上圖:

求ababaabab的nextval值

可能這篇文章文字描述較少,只要把兩幅圖看懂,就可以做題了。

如果還沒看懂,可以私聊我,再親自教你

 

 

 

 

 

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