后缀自动机构造过程演示

昨天跟后缀自动机死磕了一下午,也没搞明白怎么回事。今天又把网上找到的资料重新看了一遍,顿时觉得一道大闪电从后脑劈过——好像突然有点明白了orz……

不过只能说目前勉强明白了后缀自动机是如何构建的,对于它的很多性质和用法,还有待学习。

本人弱菜一只,如有错误,欢迎指正~

本文只是后缀自动机构建过程的演示图,不负责解释理论部分。如果想看证明或者解释,推荐以下资料:

陈立杰课件:http://wenku.baidu.com/view/7afa5828ed630b1c59eeb512.html(这个真没看懂……)

构建演示+解释说明

http://www.neroysq.com/?p=76

http://fanhq666.blog.163.com/blog/static/8194342620123352232937/

http://hi.baidu.com/myidea/item/142c5cd45901a51820e25039

http://blog.sina.com.cn/s/blog_70811e1a01014dkz.html(对 len[a]=len[b]+1 和 len[a]>len[b]+1 这两个地方解释的非常清楚,强烈推荐)

 

以经典的aabbabd为例:

下图文字叙述中有两处错误,特此更正:

1.串aabb的可接受后缀是:"b", "bb", "abb", "aabb"。

2.如果把节点3设为可接受态,不合法的后缀有:"ab", "aab"

 

后面的过程都一样不想画了……=3=

总之最后建出来是这个样子的(人家画的明显比我好看多了QAQ):

posted @ 2013-08-04 17:36  冰鸮  阅读(2709)  评论(0编辑  收藏  举报