字符串进阶——谈谈后缀全家桶(2) 后缀自动机(8.8摸了一次鱼来更新一下)

本文详细介绍了后缀自动机的基本定义、相关概念,包括基本的定义、映射关系,以及后缀自动机与后缀树的关系。此外,文章讨论了后缀自动机的算法实现,并列举了它的多种应用场景,如查找子串出现次数、字典序排序等。
摘要由CSDN通过智能技术生成

后缀自动机

§ § 1.1 基本定义与概念

首先,来看看wikiEn的定义:

In computer science, a suffix automaton is the smallest partial deterministic finite automaton that recognizes the set of suffixes of a given string. The state graph of the suffix automaton without designated(特定的) accepting or rejecting states is called the directed acyclic(无环的) word graph (DAWG).

其次,来看看强大的论文是怎么说的:

简明定义:

对给定字符串s的后缀自动机是一个最小化确定有限状态自动机,它能够接收字符串s的所有后缀.

好吧,其实就是WikiEn第一句话的翻译~这篇论文实在是太强大了(虽然翻译是非常有问题的!所以应了我们高中老师说的话啊,有能力一定要看原版).下面是我读完并结合一些其他博客的见解.

形式定义:

Definition 1   Definition 1 初始状态  后缀自动机拥有一个初始状态 state0 s t a t e 0 (简记为 t0 t 0 ),它能够到达所有其他的状态.

Definition 2   Definition 2 标记确定的唯一性  自动机中的所有转移——即有向边——都被某种符号(即该中字符串的字典符号)标记.从起始状态出发的诸转移的标记组成必须不同.

Definition 3   Definition 3 终止状态  如果我们从初始状态t_0经由任意路径走到某一状态,并顺序写出所有经过边的标记,所得到的字符串必然是s的某一后缀,则称这些状态为终止状态.

对于论文中的简明定义,恰好要求了后缀自动机的一个重要性质.

Property 1   Property 1 顶点最小性  在完成上述形式定义的所有自动机中,后缀自动机有最少的顶点数(边数并非最少).

随意给出两个例子:
abb
从左往右依次记为状态 t0,t1,t2 t 0 , t 1 , t 2 ,则
t0t1:‘a’,;t0t2:‘b’,;t0t1t2:‘ab’,; t 0 → t 1 : ‘a’ , 子 串 ; t 0 → t 2 : ‘b’,后缀 ; t 0 → t 1 → t 2 : ‘ab’,后缀 ;
abbb
从左往右依次记为状态 t0,t1,t2,t3,t4 t 0 , t 1 , t 2 , t 3 , t 4 ,下面则是 t5,t6 t 5 , t 6 ,则
 t0t1,t0t2,t0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值