查找所有最长公共子串

Finding All longest common substring

本文关键字:子串 查找      更新时间:2023-10-16

我试图找到两个字符串之间的所有最长的公共子字符串

假设我已经计算了后缀数组和LCP数组正确SA[]和LCP[]是我的逻辑正确还是我错过了什么?

这里LCP数组的索引在i到i-1之间。

假设有两个字符串str=abcabc和str1=bc。我将str= str + '#' + str1.

我的后缀数组SA[]=[6,3,0,7,4,1,8,5,2]

和LCP数组=[0,0,3,0,2,2,0,1,1]

找到它们的更好算法是什么?

有一篇很好的文章是关于有效地找到所有公共子字符串的,并附有C语言的示例。http://www.drdobbs.com/architecture-and-design/algorithm-alley/184404588