我有以下代碼:的Java:最長公共子
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));
}
}
它應該返回「out
」,而是一個空字符串返回是什麼問題呢?
問題是你有沒有運行調試器。 – Adamski 2010-05-28 13:57:02
當您找到匹配項時,您是否需要將該字符附加到遞歸結果的末尾? – bwarner 2010-05-28 13:58:39