我可以使用什么代替lcs(最长的普通子字符串)

时间:2018-10-10 09:25:54

标签: java algorithm lcs

我正在尝试使用lcs计算公共字符串,但是此算法仅计算1个字符串。我该怎么用呢?

LCS = aaa bbb ccc xxx”和“ aaa ddd ccc ”结果:“ aaa”

但是我想要= “ aaaccc”

请帮助:)

1 个答案:

答案 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!
}