找到给定两个字符串的所有常见子序列

时间:2014-03-19 08:20:12

标签: java algorithm

我尝试过使用LCS(Longest Common Subsequence)算法,但我想要所有长度的子序列。我们如何修改LCS代码?

示例:给定String_1="abxcd"String_2="aybcd" LCS会产生"abcd",但我想显示{" a",&# 34; ab"," bcd"," cd"," abcd"," d" }

1 个答案:

答案 0 :(得分:0)

试试这个伪代码

Set allCS;//create an empty set
String[] subStrings = getSubSequences(String_2) //find the subsequence of String_2
for (String str : subStrings) 
    allCS.put(LCS(String_1,str)) //add LCS of (String_1,str) to allCS

注意:

  • getSubSequences(String s)返回给定字符串参数的所有子序列
  • LCS(String s1, String s2)返回s1和s
  • 的LCS