2013-02-03 50 views
1

最近我得到一個任務,要求我創建一個程序,它使用遞歸(Java)反轉輸入短語並輸出它。例如,如果輸入「This is a SENTENCE」,則該程序將輸出「SENTENCE A is THIS」。遞歸地逆轉一個短語

但是,該任務還說明,除了遞歸函數中的單個本地String變量之外,我不能使用任何存儲或Java集合。因此,Java堆棧將保留輸入中的所有單詞。

我遇到的問題是正確實施遞歸。在本地聲明一個String變量會覆蓋之前存儲在它中的任何值,所以我不確定如何在不中斷遞歸調用的情況下實現局部變量。如果任何人都能指出我正確的方向,我會非常感激。謝謝!

+2

提示:reverse(「abcd」)= reverse(「bcd」)+「a」;反向(「a」)=「a」; –

回答

1

這看起來像正確的邏輯,除了else塊需要返回一個值,而不是簡單地將其存儲在本地變量

return reversePhrase(scanner) + string; 

您可能還需要添加一個空格:

return reversePhrase(scanner) + " " + string;