结构字符串的边界数组
在字符串处理领域,对于不同类型字符串的匹配和边界数组的构建是重要的研究内容。本文将详细介绍结构字符串(s - strings)相关的概念、编码方式、匹配方法以及边界数组的构建算法。
1. 相关字符串概念及编码
- p - 字符串匹配 :两个 p - 字符串 (S) 和 (T) 进行 p - 匹配的条件是 (prev(S) = prev(T))。例如,当 (prev(S) = A0B0AB54\$) 且 (prev(T) = A0B0AB54\$) 时,(S) 和 (T) 是 p - 匹配的。同时,还引入了前向(forw)编码,其定义为对于长度为 (n) 的 p - 字符串 (T),(forw(T) = rev(repl(prev(rev(T)), 0, n)))。在 (n = 9) 的示例中,(forw(S) = A5B4AB99\$),(forw(T) = A5B4AB99\$),(forw(U) = A2B3AB19\$)。
- 结构字符串(s - 字符串) :s - 字符串是长度为 (n) 的 p - 字符串,由常量符号字母表 (\Sigma) 和参数字母表 (\Pi) 生成,以终端符号 (\$) 结尾,且 (\Sigma \cap \Pi = \varnothing)。此外,参数符号对 ((\pi_j, \pi_k) \subseteq \Pi) 可以唯一对应,作为互补符号。例如,当 (\Sigma = {A, B}),(\Pi = {v, w, x, y, z}),(\Gamma = {(w, x), (y, z)}) 时,(S = AxBzzywv\$),(T
超级会员免费看
订阅专栏 解锁全文
2716

被折叠的 条评论
为什么被折叠?



