ac自動機failure跳轉表構建

ac自動機:就是一個前綴trie加上一個failure跳轉列表。而這個failure跳轉列表就是ac自動機的關鍵。
trie樹中的匹配到的字符串的列表,在ac自動機中叫狀態轉移成功列表,也叫成功跳轉表。另外就是有失敗跳轉表。還有字符串列表(此字符串在trie中僅有一個值,在ac自動機裏面會有多個值)

前綴樹概念不多說,僅說明一下failure跳轉表的構造。

在前綴樹中,根節點的depth(深度)爲0.
第一層的深度爲1.
依此類推……

而後:
1. 根節點沒有失敗跳轉
2. depth==1的失敗跳轉到根
3. 從第二層開始,每一個節點都用它的父節點的失敗跳轉去匹配,匹配成功則定義爲它的失敗跳轉,匹配失敗,則再用父的失敗的失敗跳轉繼續匹配,直到根節點。
4. failure跳轉表建完。

發佈了91 篇原創文章 · 獲贊 73 · 訪問量 68萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章