博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AC自动机 - 关于Fail指针
阅读量:7043 次
发布时间:2019-06-28

本文共 611 字,大约阅读时间需要 2 分钟。

fail指针可以说是AC自动机里最难理解的东西,怎样更好的理解AC自动机的fail指针?

先来看一幅图:

看这幅图上的fail指针是怎么构造的.

树上的词分别是:

{ he , hers , his , she}

按图所示分成3层。看到第三层,是"she",其中:

①s指向root

②h先找到s的fail指针

发现是0号指针,不是h,然后h就不高兴了,再问问s的fail指针root:“你有没有儿子和我同名叫h的”

root说:“有,你指向他吧”,然后h就高兴的指向了第一行的h.

③e开始找了,首先问他老爸h:“你的fail指针指着谁”

h说:“图上第一行那个h啊”

然后e就屁颠屁颠地跑去问图上第一行那个h:“你有没有名字和我一样的儿子啊”

图上第一行那个h说:“有,他地址是xxx”

最后e的fail指针就指向xxx地址,也就是第一行那个e了

发现这样,如果一个字符串查到第三行的e以后的字符才不匹配,那说明他前面应该有个‘he’

刚好e的失败指针指向的是第一行的‘he...’的那个e;

这样就不用从h开始再找一遍,而是接着第一行的e继续往后找,从而节省了时间.

--------------------------------------------------------- End.

转载请注明: 

转载于:https://www.cnblogs.com/crazyacking/p/4659501.html

你可能感兴趣的文章
[AX 2012] Woker user request
查看>>
Android-LinearLayout布局技巧(二)
查看>>
黄页js-sdk开发总结分享
查看>>
程序员应该知道的10大编程格言
查看>>
EasyUI的combobox组件Chrome浏览器不兼容问题解决办法
查看>>
JAVA实现二叉树
查看>>
如何制作iso文件
查看>>
构建openssl debug版
查看>>
jquery 的datatables插件问题
查看>>
Putty密钥(PrivateKey)导入SecureCRT
查看>>
移动环境下DNS解析失败后的优化方案
查看>>
TeeChart的最小步长和最大步长
查看>>
spring+springMVC中使用@Transcational方式管理事务的必须要配的东西。
查看>>
网络全民创业:95%电商生活得非常痛苦
查看>>
三种方法写监听事件
查看>>
hdu 2899 hdu 3400 三分/几何
查看>>
[转]World Wind学习总结一
查看>>
算法题一道
查看>>
滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月14日)...
查看>>
iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
查看>>