我必须使用递归来解决这个问题,我设法使用循环很快地使其工作,但我对此有点卡住了。 我当前的代码是
public static String ReverseR(String n){
String finalstring="";
int i = 0;
int len = n.length();
while (i < len) {
finalstring += (n.charAt(len - 1));
ReverseR(n.substring(0, len - 1));
i++;
}
return finalstring;
}
当我输入任何字符串时,结果字符串的长度是正确的,但只使用最后一个字母。例如:ReverseR("Hello") = ooooo 有什么想法吗?
最佳答案
递归有点像归纳证明。
- 摆脱 while 循环
- 如果您要反转 0 个字符的字符串,这很简单:只需返回“”
- 如果要反转 n 个字符的字符串,请反转 [0..n-2] 并添加最后一个字母。您已经在这样做了。
关于JAVA:帮助修复递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526274/