作為一個菜雞的我,剛開始看這個問題,一個字難,兩個字難難,三個字難中難,四個字男上加男。嘿嘿(o﹃o )
開始進入干貨區,經過看了無數個大佬的方法自己總結了一下,具體鏈接就不放上面了,畢竟太多了。
next值
next陣列的求解方法是:第一位的next值為0,第二位的next值為1,后面求解每一位的next值時,根據前一位進行比較。首先將前一位與其next值對應的內容進行比較,如果相等,則該位的next值就是前一位的next值加上1;如果不等,向前繼續尋找next值對應的內容來與前一位進行比較,直到找到某個位上內容的next值對應的內容與前一位相等為止,則這個位對應的值加上1即為需求的next值;如果找到第一位都沒有找到與前一位相等的內容,那么需求的位上的next值即為1。
nextval值是在已知了next值得情況下求解,我覺得這個最簡單也最好記。
模式串abaabcac next值01122312nextval值01021302
1.第一位的nextval值必定為0,第二位如果于第一位相同則為0,如果不同則為1。
2.第三位的next值為1,那么將第三位和第一位進行比較,均為a,相同,則,第三位的nextval值為0。
3.第四位的next值為2,那么將第四位和第二位進行比較,不同,則第四位的nextval值為其next值,為2。
4.第五位的next值為2,那么將第五位和第二位進行比較,相同,第二位的next值為1,則繼續將第二位與第一位進行比較,不同,則第五位的nextval值為第二位的next值,為1。
5.第六位的next值為3,那么將第六位和第三位進行比較,不同,則第六位的nextval值為其next值,為3。
6.第七位的next值為1,那么將第七位和第一位進行比較,相同,則第七位的nextval值為0。
7.第八位的next值為2,那么將第八位和第二位進行比較,不同,則第八位的nextval值為其next值,為2。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/82387.html
標籤:新技術前沿
上一篇:mysql,求同組資料。
