如何找到两个列表共有的最长子序列?例如:
["abcdefg", "abc__fg", "ab____g"]
它应该返回:
["ab", "g"]
是否存在执行此功能的现有功能?你会如何从现有的中组成一个?
答案 0 :(得分:1)
您正在寻找Data.List.CommonSubstring
$ ghci
λ: :m +Data.List.CommonSubstring
λ: longestSubstring "abcdefg" "abc__fg"
"abc"
目前还不清楚你想要什么(最长的子序列或所有可能的子序列),所以可以直接使用Data.SuffixTree来实现所需的逻辑。