算法——Lyndon分解

一、Lyndon串的定义

一个非空字符串 ( s ) 称为 Lyndon串,当且仅当对于其所有真后缀 ( t )(即 ( t \neq s ) 且 ( t ) 是 ( s ) 去掉前若干字符后的子串),都有 ( s < t )(字典序比较)。

  • 例:"a""ab""abc" 是 Lyndon 串,而 "aa""abba" 不是(因为 "aa" 的后缀 "a" 不大于自身,"abba" 的后缀 "bba" 小于原串)。

二、Lyndon分解的概念

Lyndon分解 是将一个字符串 ( s ) 唯一分解为若干 Lyndon 串的序列 ( s = w_1w_2\cdots w_k ),满足 ( w_1 \geq w_2 \geq \cdots \geq w_k )(字典序非递增)。

  • 唯一性:根据 Schützenberger 定理,每个字符串的 Lyndon 分解是唯一的。

三、Duval 算法(线性时间分解)

Duval 算法是高效计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值