我有以下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); }
否则没有串联串的发生,只有,返回。