軟考(中級設計師)--數據結構基礎之KMP算法

1.KMP算法是一種改進的字符串匹配算法。

2.KMP算法的關鍵是利用匹配失敗後的信息,儘量減少模式串與主串的匹配次數以達到快速匹配的目的。

3.具體實現是一個next()函數,函數本身包含了模式串的局部匹配信息。

4.《部分匹配表》:

1)前綴:除了最後一個字符以外,一個字符串的全部頭部組合。
2)後綴:除了第一個字符以外,一個字符串的全部尾部組合。
部分匹配值就是前綴和後綴的最長的共有元素的長度。
例如:
“A”字符串的前綴和後綴都是空集,共有元素的長度爲0;
“AB”的前綴是A,後綴是B,共有元素的長度0;
“ABCD”的前綴爲【A,AB,ABC】,後綴是【BCD,CD,D】,共有元素長度爲0;
“ABCDA”的前綴爲[A,AB,ABC,ABCD],後綴是【BCDA,CDA,DA,A】,共有元素長度是1,元素是[A],

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章