1
我知道有多種方法可以找出單詞是否是迴文式的,就像使用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 ** 我擔心這可能是答案......如此困惑,爲什麼?是否和每個實例? – Spider
你有了這個概念,在學習如何構建遞歸方法時,你的失敗是一個常見的概念。 –
所以它按照你的建議工作,但是我爲什麼會超級困惑,返回false,然後執行下一個語句或者執行return true;然後進入下一個語句,你可以爲我清除它嗎?或者它只是獲得了以前的回報價值?它如何知道結束? 是說第一個實例,TRUE,下一個TRUE,最後一個FALSE,所以它說的是返回TRUE && TRUE && FALSE? – Spider