字符串算法 金策_1_金策_字符串算法选讲.pdf

1_金策_字符串算法选讲

字符串算法选讲

.

字符串算法选讲

金策

清华大学交叉信息研究院

February 3, 2017

字符串算法选讲

Periods and borders

Basics

字符串: , 。

字符集: 。算法竞赛中常见的 是 个小写英文字

母。

子串 。

前缀pre , 后缀suf 。

字符串算法选讲

Periods and borders

Basics

周期和 border

若 , , 就称 是

的周期(period)。

若 , pre suf , 就称pre 是 的

border。

pre 是 的border 是 的周期。

period

border

比如 abaaaba 就有周期 , 对应的 border 是 aba,a, 和 ϵ。

字符串算法选讲

Periods and borders

Basics

KMP 算法

可以在 时间求出数组fail, 其中fail 表示前缀

的最大border 长度。

的所有border 长度?

fail failfail

字符串算法选讲

Periods and borders

Basics

后缀数组和 LCP 查询

在 log 时间空间预处理后(或较复杂的 时间空间

预处理), 可以 回答: 两个子串的最长公共前缀(LCP)、最

长公共后缀 (LCS)。

对于拥有周期 的串, LCP 。

输入, 回答最大的 使得 拥有周期 。

字符串算法选讲

Periods and borders

Periodicity lemma

Weak Periodicity Lemma

和 是字符串 的周期, , 则gcd 也是 的周

期。

证明: 令 , 则由 或 均可

推出 。

Periodicity Lemma: 和 是 的周期, gcd ,

则gcd 也是 的周期。

abaaba

字符串算法选讲

Periods and borders

Periodicity lemma

字符串匹配

引理: 字符串 满足 , 则 在 中的所有匹配位

置组成一个等差数列。

证明: 只需讨论至少匹配 次的情况。考虑 在 中的(最左

边)第一次和第二次匹配, 间距为 。另外某次匹配与第二次匹

配的间距为 。

可知 都是 的周期, 从而 gcd 也是 的周期。

设 的最小周期为 。

由 知 也是

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值