Java 我可以使用什么来代替lcs(最长公共子字符串)

Java 我可以使用什么来代替lcs(最长公共子字符串),java,algorithm,lcs,Java,Algorithm,Lcs,我试图使用lcs计算公共字符串,但此算法仅计算1个字符串。我可以用什么来代替 LCS=“aaabbbccxxx”和“aaadddccc”结果:“aaa” 但是我想要的=“aaaccc” 请帮助:)您可以应用LCS算法一次以获得“aaa”结果,然后从两个字符串中删除此结果,然后重新应用LCS算法以获得“ccc”结果。最后,您将连接临时结果 主类中的java代码可能如下所示(假设您有一个执行LCS算法的方法LCS(String_1,String_2):` public static ArrayLis

我试图使用lcs计算公共字符串,但此算法仅计算1个字符串。我可以用什么来代替

LCS=“aaabbbccxxx”和“aaadddccc”结果:“aaa”

但是我想要的=“aaaccc”


请帮助:)

您可以应用LCS算法一次以获得“aaa”结果,然后从两个字符串中删除此结果,然后重新应用LCS算法以获得“ccc”结果。最后,您将连接临时结果

主类中的java代码可能如下所示(假设您有一个执行LCS算法的方法LCS(String_1,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!
}
publicstaticarraylisttemp_结果;
公共静态字符串字符串1、字符串2、临时结果、最终字符串;
公共静态void main(字符串参数[]){
while(temp_result!=null&!temp_result.equals(“”){
临时结果=LCS(字符串1、字符串2);
字符串_1.replaceAll(临时结果“”);
字符串2.replaceAll(临时结果“”);
临时结果。添加(临时结果);
}
for(字符串迭代器字符串:临时结果){
最终字符串=最终字符串+迭代器字符串;
}
System.out.println(“这是结果”+最终字符串);
}
公共静态字符串LCS(字符串1、字符串2){
return“”;//将实际的LCS逻辑放在这里,不应返回空字符串!
}

如果看不到您的代码,我们将无法帮助您,但aaaccc既不是第一个输入的子字符串,也不是第二个输入的子字符串。是否要“所有最长的公共子字符串”?这意味着输出为
[“aaa”,“ccc”]
。您的需求定义不明确,请提供您尝试了什么?您要检查多少字符串?在您给出的示例中,有两个参数。此外,LCS查找的是一个子字符串,而不是子字符串的并集。LCS算法一次只处理一个字符串,那么如果
LCS
方法查找两个di呢给定字符串中的Fuffon子串?考虑“AAAABBB”和“AZBBB”>的例子,期望输出应该是aabbb@dbl不,这不应该是输出,输出应该是
bbb
,这是唯一的LCS。@luk2302很遗憾,您不正确。OP要求一个算法来查找由公共字符构成的字符串在两个字符串之间。标题中误用的“LCS”具有误导性OK-根据预期输出,预期输出仍应包含所有常用字符。由于规范不清楚->问题被搁置。干杯。