串的nextval數組怎么算 數據結構模式匹配求next值?
數據結構模式匹配求next值?例如,求解模式字符串a B a B C a C next value 0 1 1 2 2 3 1 2 next數組的方法是:第一位的next value為0,第二位的ne
數據結構模式匹配求next值?
例如,求解模式字符串a B a B C a C next value 0 1 1 2 2 3 1 2 next數組的方法是:第一位的next value為0,第二位的next value為1。當稍后解出每個位的下一個值時,將根據前一位進行比較。首先,比較上一位與其下一個值對應的內容。如果相等,則該位的下一個值為上一位的下一個值加1;如果不相等,則繼續(xù)查找下一個值對應的內容與上一位進行比較,直到發(fā)現該位內容的下一個值對應的內容與上一位相等,則對應于位加1的值是請求的下一個值如果找到第一個位但沒有找到與前一個位相等的內容,則請求位上的下一個值是1。有幾種方法,我現在只懂這一種。還有一種方法是從第一個next值-1開始的
如何求字符串next數組值?
我寫了一篇關于如何計算字符串next和nextval的文章,比較簡單生動,適合初學者
參考這篇,哪個更適合初學者
查找字符串下一個數組值:known string STR=“aaab”下一個數組值是0123。已知字符串STR=“babab”,其下一個數組值為01123。計算過程:計算3B(3B用坐標3表示B):首先比較3B的前一位2a,2a的下一個值為1,然后將2a與坐標1的字符串1b進行比較,后者不相等。因為1b是第一位,3b的下一個值是1。計算4A:首先比較4A的第一位3b,3b的下一個值是1,然后將3b與坐標為1的字符串1b進行比較,這樣4A的下一個值是(3b1的下一個值)=2。計算5B:與計算4a類似,結果為21=3。