中文

RLE字符串上的阿贝尔正则性计算

数据结构与算法 2018-01-29 v2

摘要

如果两个字符串x和y满足x是y的置换,或反之,则称x和y是阿贝尔等价(Abelian equivalent)的。如果一个字符串z满足z = xy且x和y阿贝尔等价,则称z为阿贝尔平方(Abelian square)。如果一个字符串w可被分解为字符串序列v_1,...,v_s,使得v_1,...,v_{s-1}均阿贝尔等价且v_s是v_1的某个置换的子串,则称w具有正则阿贝尔周期(regular Abelian period) (p,t),其中p = |v_1|且t = |v_s|。如果字符串w_1的一个子串w_1[i..i+l-1]与另一字符串w_2的一个子串w_2[j..j+l-1]阿贝尔等价,则称这些子串为w_1和w_2的公共阿贝尔因子(common Abelian factor),若长度l为此类最大者,则称这些子串为w_1和w_2的最长公共阿贝尔因子(longest common Abelian factor)。我们提出了利用字符串的游程编码(run length encoding, RLE)高效计算这些阿贝尔正则性的算法。对于给定的长度为n且RLE大小为m的字符串w,我们提出了在O(mn)时间内计算w中出现的所有阿贝尔平方的算法,以及在O(mn)时间内计算w的所有正则阿贝尔周期的算法。对于总长度为n且总RLE大小为m的两个给定字符串w_1和w_2,我们提出了在O(m^2n)时间内计算所有最长公共阿贝尔因子的算法。

关键词

引用

@article{arxiv.1701.02836,
  title  = {Computing Abelian regularities on RLE strings},
  author = {Shiho Sugimoto and Naoki Noda and Shunsuke Inenaga and Hideo Bannai and Masayuki Takeda},
  journal= {arXiv preprint arXiv:1701.02836},
  year   = {2018}
}