構造next數組步驟算法
1.計算最長公共前綴後綴數組 next[]; //即最長的,前綴與後綴相同的長度。數組
2.將next中全部元素右移一位,第1個元素置爲-1;next
3.將next中全部元素加1。字符
算法運行:當第j個元素不匹配時,模式串右移j-next[j]個字符。 j從1開始
例如模式串:xyxyyxxyx
構造next數組:
步驟1:所得next={0,0,1,2,0,1,1,2,3}
步驟2: next={-1,0,0,1,2,0,1,1,2}
步驟3: next={ 0,1,1, 2,3,1,2,2,3}