Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用递归而不截断?_Java_Recursion - Fatal编程技术网

Java 使用递归而不截断?

Java 使用递归而不截断?,java,recursion,Java,Recursion,我无法理解这个递归方法,因为返回方法似乎没有在每次运行时添加charAt(0)方法 假设您得到了一个反转字符串的方法(这是正确的): 公共字符串反向限制(字符串s){ 如果(s.length()为: rs(Hello) rs(ello) + H (rs(llo) + e) + H ((rs(lo) + l) + e) + H (((rs(o) + l) + l) + e) + H o + l + l + e + H 请注意,您只将s.substring(1),而不是s.substr

我无法理解这个递归方法,因为返回方法似乎没有在每次运行时添加charAt(0)方法

假设您得到了一个反转字符串的方法(这是正确的):

公共字符串反向限制(字符串s){
如果(s.length()为:

 rs(Hello)
 rs(ello) + H
 (rs(llo) + e) + H
 ((rs(lo) + l) + e) + H
 (((rs(o) + l) + l) + e) + H
 o + l + l + e + H

请注意,您只将
s.substring(1)
,而不是
s.substring(1)+s.charAt(0)
传递给递归调用。仅供参考,这是一种效率极低的字符串反转方法。它必须进行字符串串联(构造新的字符串对象)在递归的每一级。使用
StringBuilder
会更有效率。我发现重复的(答案相同)存储在缓冲区中,直到递归达到其基本情况?局部变量存储在堆栈上。阅读
 rs(Hello)
 rs(ello) + H
 (rs(llo) + e) + H
 ((rs(lo) + l) + e) + H
 (((rs(o) + l) + l) + e) + H
 o + l + l + e + H