このコードはなぜ機能しますか?このコードはどのように機能しますか? (Java再帰)
public static String reverse(String a) {
if(a.length() == 0) {
return a;
} else {
return reverse(a.substring(1)) + a.charAt(0);
}
}
これも
public static String reverse(String a) {
if(a.length() == 0) {
return a;
} else {
return reverse(a.substring(1)) + a.substring(0);
}
}
を?:ていません、ケース1での再帰の仕事をどうするか、何がa.charAt(0)
が行う追加しますか?そして、この方法はどのようにベースケースに達しますか?
**ドキュメントを読んで**、(HTTPS [ ''ストリング(INTたbeginIndex)]のJavadocをIE: //docs.oracle.com/javase/8/docs/api/java/lang/String.html#substring-int-):*この文字列の部分文字列である文字列を戻します。部分文字列は、指定されたインデックスの文字で始まり、**はこの文字列の末尾まで拡張されます**。*。 – Andreas
また、何が起こるかを見るために**デバッグ**を試してみることもできます。それは非常に迅速にあなたに理由を示しています。 [デバッガとは何ですか?また、どのように問題を診断するのに役立ちますか?](https://stackoverflow.com/q/25385173/5221149) – Andreas
コンピュータを鉛筆で紙を使って最も効果的に再帰させる方法です。 –