如果我想找到 2 个字符串的最长公共子字符串,那么哪种方法在时间/空间复杂度方面更有效:使用 DP 的后缀数组?
DP 将产生 O(m*n) 空间,时间复杂度为 O(m*n),后缀数组方法的时间复杂度是多少?
1) 计算后缀 O(m) + O(n) 2) 排序 O(m+n log2(m+n)) 3) 找到 m+n-1 个字符串的最长公共前缀?[我不确定如何计算 #of 比较]
后缀数组允许我们对子字符串做更多的事情(比如搜索子字符串等),但是由于在这种情况下不需要其他函数,DP 是否会被认为是一种更简单/更清洁的方法?哪一个应该在我们比较 2 个字符串的情况下使用?
另外,如果我们有超过 2 个字符串怎么办?