https://www.cnblogs.com/crazyacking/p/3988683.html



### 1. 最长公共前缀(LCP,Longest Common Prefix)的后缀数组解法:构建SA[i]数组中相邻元素的最长公共前缀(LCP,Longest Common Prefix),Height[i]表示SA[i]和SA[i-1]的LCP;如果需要求解string中的后缀子串 suffix[i] 和suffix[j]的LCP,则通过Rank数组取得两个后缀的排名m和n ( m < n ),则Height数组在m+1和n之间的最小值就是目标的LCP,这里套个RMQ算法就可以了。

\(*\) fecddcba,所以LPS转换为求新字符串某两个suffix子串的最长公共前缀。

\(*\)前后。

<br>
<br>
<br>

> 1 给定一个字符串,询问某两个后缀的最长公共前缀。

> 2 给定一个字符串,求最长重复子串,这两个子串可以重叠。

> 3 给定一个字符串,求最长重复子串,这两个子串不能重叠。

> 4 给定一个字符串,求至少出现k 次的最长重复子串,这k 个子串可以重叠。

> 5 给定一个字符串,求不相同的子串的个数。

> 6 给定一个字符串,求最长回文子串。

> 7 给定一个字符串L,已知这个字符串是由某个字符串S 重复R次而得到的,求R 的最大值。

> 8 给定一个字符串,求重复次数最多的连续重复子串。

> 9 给定两个字符串 A 和B,求最长公共子串。

> 10 给定两个字符 A 和B,求长度不小于k 的公共子串的个数(可以相同)。

> 11 给定n 个字符串,求出现在不小于k 个字符串中的最长子串。

> 12 给定n 个字符串,求在每个字符串中至少出现两次且不重叠的最长子串。

> 13 给定n 个字符串,求出现或反转后出现在每个字符串中的最长子串。

相关文章:

  • 2021-06-29
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
  • 2021-11-22
  • 2021-12-29
  • 2022-01-01
猜你喜欢
  • 2021-08-16
  • 2022-02-14
  • 2022-12-23
  • 2021-06-29
  • 2021-06-10
  • 2021-09-23
相关资源
相似解决方案