我正在為我的計算機科學入門課程學習遞回,但我真的很難應用它。如果我有這樣的方法:
public static String buildString(String str) {
...
return ...;
}
我將如何在不使用迭代器的情況下通過遞回呼叫 buildString 來制作和回傳原型中的 String 副本?我試過很多次使用子字串,但我一直收到計算器溢位錯誤。
免責宣告:這不是家庭作業或任何此類任務的一部分。這是我想出的一種假設方法。
uj5u.com熱心網友回復:
提供退出條件:如果輸入字串為空,則回傳空字串。
使用方法String::isEmpty或String::length呼叫
buildString遞回使用串并增加一個字符的結果。這里有兩種可能的實作:選取第一個或最后一個字符并相應地連接該字符。
使用方法String::charAt或String::substring(兩個版本)。
由于這似乎是一個自學練習,因此未提供解決方案的代碼。
請注意,StackOverflowError如果輸入字串足夠大,遞回很有可能。
uj5u.com熱心網友回復:
你可能想使用這個。
public static String buildString(String str, int in) {
if(in == str.length()) return "";
return str.charAt(in) buildString(str, in 1);
}
buildString(str, 0)作為您的輸入傳遞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/376316.html
上一篇:使用遞回MySQL插入唯一的亂數
