kmp next函數 kmp的周期問題,深入了解kmp中next的原理


-----------------------

-----------------------

 k    m        x      j       i

由上,next【i】=j,兩段紅色的字符串相等(兩個字符串完全相等),s[k....j]==s[m....i]

設s[x...j]=s[j....i](xj=ji)

則可得,以下簡寫字符串表達方式

kj=kx+xj;

mi=mj+ji;

因為xj=ji,所以kx=mj,如下圖所示

 

-------------

      -------------

 k   m        x     j   

看到了沒,此時又重復上面的模型了,kx=mj,所以可以一直這樣遞推下去

所以可以推出一個重要的性質len-next[i]為此字符串的最小循環節(i為字符串的結尾),另外如果len%(len-next[i])==0,此字符串的最小周期就為len/(len-next[i]);

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM