本文介绍了Java的:最长公共子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下code:
public class LCS1 {
public static String lcs(String a, String b) {
String x;
String y;
int alen = a.length();
int blen = b.length();
if (alen == 0 || blen == 0) {
return "";
} else if (a.charAt(alen - 1) == b.charAt(blen - 1)) {
return lcs(a.substring(0, alen - 1), b.substring(0, blen - 1));
} else {
x = lcs(a, b.substring(0, blen - 1));
y = lcs(a.substring(0, alen - 1), b);
}
return (x.length() > y.length()) ? x : y;
}
public static void main(String[] args) {
String a = "computer";
String b = "houseboat";
System.out.println(lcs(a, b));
}
}
这应该返回退出
,而是一个空字符串返回什么问题?
It should return "out
" but an empty string returns what is problem?
推荐答案
我不知道,但我想,行
else if (a.charAt(alen-1)==b.charAt(blen-1)){
return lcs(a.substring(0,alen-1),b.substring(0,blen-1));
}
应改为
else if (a.charAt(alen-1)==b.charAt(blen-1)){
return lcs(a.substring(0,alen-1),b.substring(0,blen-1)) + a.charAt(alen-1);
}
否则没有串联串的发生,只有,
返回。
这篇关于Java的:最长公共子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!