我有以下代码:
public class Test{
public static void main(String ... args){
String str = "ABCDE";
testRecur(str, 1);
}
private static void testRecur(String str, int subLength){
if(subLength > str.length())
return;
System.out.println("");
recuAlgo(str, subLength);
testRecur(str, ++subLength);
return;
}
private static void recuAlgo(String str, int subLength){
if(subLength > str.length())
return;
System.out.print(str.substring(0, subLength) + " ");
recuAlgo(str.substring(1, str.length()), subLength);
return;
}
}
所需的输出是:
A B C D E
AB BC CD DE
ABC BCD CDE
ABCD BCDE
ABCDE
我的问题是我不知道如何在不使用字符串长度作为方法输入的情况下编写递归。我从两个for循环中采用了递归,但是我仍然无法从方法声明中获取长度。
如何从递归中删除subLength
变量?或者一般来说什么是递归解决这个问题的更好方法?