算法设计与分析课件 57 AC自动机.pptxVIP

  • 1
  • 0
  • 约1.22千字
  • 约 15页
  • 2026-06-10 发布于山东
  • 举报

算法设计与分析本节要点CONTENTSAC自动机

AC自动机AC自动机是KMP算法和Trie树的结合,是经典的多模匹配算法。首先将多个模式串构建一棵字典树,然后在字典树上添加失配指针,失配指针相当于KMP算法中的next函数(匹配失败时的回退位置),最后将主串在Trie树上进行模式匹配。AC自动机算法分为3步:①构建一棵字典树;②构建AC自动机;③进行模式匹配。

AC自动机1.构建字典树插入一个字符串时,从前往后遍历字符串,从字典树的根开始判断当前要插入的字符节点是否已存在,若已存在,则沿该分支遍历下一个字符;若不存在,则创建一个新节点表示这个字符。继续遍历其他字符,直到字符串处理完毕。

AC自动机假设有单词she、he、his、hers,构建一棵字典树。

AC自动机算法实现

AC自动机2.构建AC自动机KMP算法中的next函数(回退函数或者fail函数)。next函数表示S[i]与T[j]不等时j应该回退的位置。

AC自动机AC自动机的失配指针有同样的功能,匹配失败时,跳转到当前节点的失配指针所指向的节点,再次进行匹配操作。AC自动机可以实现多模式匹配,归功于失配指针(fail指针)。给字典树的每个节点添加失配指针,AC自动机就构造完成了。

AC自动机AC自动机的失配指针指向的节点代表的字符串是当前节点代表的字符串的最长后缀。

AC自动机对

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档