ac自动机failure跳转表构建

来源:互联网 发布:sql server with as 编辑:程序博客网 时间:2024/06/16 14:52

ac自动机:就是一个前缀trie加上一个failure跳转列表。而这个failure跳转列表就是ac自动机的关键。
trie树中的匹配到的字符串的列表,在ac自动机中叫状态转移成功列表,也叫成功跳转表。另外就是有失败跳转表。还有字符串列表(此字符串在trie中仅有一个值,在ac自动机里面会有多个值)

前缀树概念不多说,仅说明一下failure跳转表的构造。

在前缀树中,根节点的depth(深度)为0.
第一层的深度为1.
依此类推……

而后:
1. 根节点没有失败跳转
2. depth==1的失败跳转到根
3. 从第二层开始,每一个节点都用它的父节点的失败跳转去匹配,匹配成功则定义为它的失败跳转,匹配失败,则再用父的失败的失败跳转继续匹配,直到根节点。
4. failure跳转表建完。

0 0
原创粉丝点击