字符串的子串定位稱為模式匹配,模式匹配可以有多種方法。簡單的算法可以使用兩重嵌套循環(huán),時間復(fù)雜度為母串與子串長度的乘積。而KMP算法相對來說在時間復(fù)雜度上要好得多,為母串與子串長度的和。但其算符比較難以理解。
在KMP算法中,使用到了一個next數(shù)組。這個數(shù)組就是在比較失配時母串指針不必回溯,而子串指針移動相應(yīng)位置即可。我們給出書中next數(shù)組的算式表示以及算法,請你實現(xiàn)之。
圖1:next數(shù)組的算式表示
圖2:next數(shù)組的算法表示