我有下面的代碼,它不因爲某些原因,我想弄清楚正常工作:尋找最大公共子
public static int score(String gene1, String gene2){
char[] a=new char[gene1.length()];
char[] b=new char[gene2.length()];
a=gene1.toCharArray();
b=gene2.toCharArray();
return score(a, b, 0,0);
}
private static int score(char[] a, char[] b, int i, int j){
if(a[i]=='\0' || b[j]=='\0')
return 0;
else if (a[i]==b[j])
return 1+score(a, b, i+1, j+1);
else
return max(score(a, b,i+1, j),score(a, b, i, j+1));
}
private static int max (int a, int b){
if (a<b) return b;
else return a;
}
這裏是它失敗:
assertEquals(2, GeneAnalysis.score("ACGT","AC"));
我得到一個IndexOutofBoundsError
任何想法?另外,在提供幫助時,請不要更改方法參數。他們應該是他們的樣子。這
家庭作業標籤也許? – 2010-11-06 00:33:32
是這功課嗎?有趣。你問了45個問題並給出了0個答案。 – smartnut007 2010-11-06 00:34:16
請向我們提問這樣的問題時向我們顯示輸入,實際產量和預期產量。 – 2010-11-06 00:34:35