本篇文章主要详细介绍$AC$自动机的$fail$指针:
如果有什么不完善的地方,请联系我$qwq$
前置知识:
1、建议学一下$kmp$算法
2、$Trie$
导入:
AC自动机是用来解决多模板匹配问题的,但是,如果就单纯的把每个模板串拼接在一起,或者单个单个匹配的话,肯定是会超时的,而它的思想是把所有的模式串建立一颗$Trie$,然后用文本串来匹配,那么我们就必须在这颗$Trie$树上进行快速跳转来优化,于是,AC自动机就诞生了
重点:fail指针到底是什么?
我们先来思考一个问题,加入我们按照上面的思想,把每一个模式串建立一颗字典树,那么怎样才能在这个模板串失配后快速跳到下一个有可能成功匹配的字符串来匹配呢?我们举个例子:假设文本串是$bcde$,模式串有两个,分别为$abc$和$bcd$,我们为两个模式串建一颗$Trie$,如下图:
原文地址:https://www.cnblogs.com/yexinqwq/p/10113896.html
时间: 2024-11-08 07:48:05