最长的后缀 - 前缀重叠算法

时间:2017-10-04 04:19:24

标签: string algorithm bioinformatics suffix-array suffix

我的任务是确定一个有效的算法[O(n * log(n))],给定一组k个字符串S = {s-1,s-2,s-3,..., sk},将识别每对字符串(si,sj)的最长子串T,使得T是si的后缀和sj的前缀,以及每对字符串的最长子串T(sj,si) )。 n表示所有k个字符串的相加长度(n = | s-1 | + | s-2 | + | s-3 | + ... + | s-k |)。

有什么想法?解决方案的链接也可以。提前谢谢!

1 个答案:

答案 0 :(得分:0)

本书Algorithmic Aspects of Bioinformatics第61页的算法4.10给出了一种使用后缀树计算一组给定字符串的最长公共子字符串的方法

computing the longest common substring of a set of given strings using suffix trees

本文还解释了如何找到最长的公共子字符串

  

相对于后缀树大小的线性时间,即 O(n log n)