単語が回文かどうかを知るには、StringBuilderの逆関数またはCollectionsの逆関数を使用するなどの方法がありますが、再帰を学習するには、この方法でそれを書いた。私は繰り返し作業していました。再帰を使用して解を試してみる
埋め込まれたelse文でtrueが追加されていますが、デバッグモードでこれを実行するとfalseが返され、次にcheckPalindromeが呼び出されるため、何をすべきか分かりませんなぜそれが戻って終了する必要がありますので、理解していないのですか?私が間違ってやっていることや、それをどうやってこのように働かせるかの説明を本当にうれしく思います。
public static boolean checkPalindrome(Deque deq) {
if(deq.pollFirst() != deq.pollLast()) {
return false;
} else {
if(deq.size() == 1 || deq.size() == 0) {
return true;
} else {
checkPalindrome(deq);
return true // TODO ?? figure out What to put here ??
}
}
}
_膝と叫び声** ** noooo ** 私は答えが...かもしれないと心配していたので、どうして混乱しましたか?それは各インスタンス上でANDですか? – Spider
あなたはコンセプトを持っていました。あなたの失敗は、再帰的メソッドを構築する方法を学ぶ際の一般的なものです。 –
それはあなたが提案した方法で動作しますが、なぜ私はスーパーであるのか、偽を返し、次のステートメントを実行するかtrueを返します。それから次のステートメントに進みます。それとも、以前のリターンの価値を得ているのでしょうか?どのようにそれを知ることは終わりですか? TRUE、TRUE、次にTRUE、FALSEを返します。TRUE && TRUE && FALSEを返します。 – Spider