KMP算法

構造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}

相關文章
相關標籤/搜索