我正在嘗試撰寫遞回來反轉字串。這是我的方法。
public static void main(String[] args) {
String str = "abc";
String b = reverseString(str);
System.out.println(b);
}
public static String reverseString(String a){
if (a.isEmpty()){
return a;
}
return reverseString(a.substring(1)) a.charAt(0);
}
我不明白為什么當它到達基本情況時,我的 a 已經是空的,但我仍然能夠列印出反轉的字串。
uj5u.com熱心網友回復:
你沒有實作任何遞回,你只是替換了一個字串的兩半。
public static void main(String[] args) {
String str = "abcd";
String b = reverseString(str);
System.out.println(b);
}
public static String reverseString(String str) {
int p = str.length() / 2;
if (str.length() == 1)
return str;
String prefix = reverseString(str.substring(p, str.length()));
String suffix = reverseString(str.substring(0, p));
return prefix suffix;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/489063.html
