我正在尝试使用lcs计算公共字符串,但是此算法仅计算1个字符串。我该怎么用呢?
LCS = “ aaa bbb ccc xxx”和“ aaa ddd ccc ”结果:“ aaa”
但是我想要= “ aaaccc”
请帮助:)
答案 0 :(得分:1)
您可以一次应用LCS算法以获得“ aaa”结果,然后从两个字符串中删除该结果,然后重新应用LCS算法以获得“ ccc”结果。最后,您将串联临时结果。
您在主类中的Java代码可能类似于以下内容(假设您具有执行LCS算法的方法LCS(String string_1,String string_2):
public static ArrayList<String> temp_results;
public static String string_1,string_2,temp_result,final_string;
public static void main(String args[]) {
while (temp_result != null && !temp_result.equals("")) {
temp_result = LCS(string_1,string_2);
string_1.replaceAll(temp_result,"");
string_2.replaceAll(temp_result,"");
temp_results.add(temp_result);
}
for (String iterator_string : temp_results){
final_string = final_string + iterator_string;
}
System.out.println("This is the result "+final_string);
}
public static String LCS(String string_1, String string_2){
return ""; //put your actual LCS logic here, you should not return an empty string!
}