gpt4 book ai didi

java - 关于子串和递归的问题

转载 作者:行者123 更新时间:2023-12-01 19:27:34 25 4
gpt4 key购买 nike

为什么它会返回相反的字符串,为什么这是一个递归函数?

public static String Reverse(String a){                                 
String result = "";
if(a.length()>0){
result = Reverse(a.substring(1))+a.charAt(0);
}
return result;
}

最佳答案

可以分步骤定义:

  1. 将任意字符串拆分为第一个字符和“其余部分”。
  2. 如果“rest”长度大于 0,则对输入“rest”重复步骤 1

  3. 当递归到达最后一个字符时,它将开始反向打印字符。

最后一次递归执行将返回一个空字符串。它将向这个空语句添加来自前一个调用的字符(n-1 个字符),然后向该空语句添加来自位置(n-2)的字符,依此类推。这样我们就得到了一个递归函数:

  public static String reverse(String a){   
if(a.length()>0){
return reverse(a.substring(1))+a.charAt(0);
}
return ""; // last statement
}

示例:

 'cat' -> reverse('at') + 'c'
(reverse('t') + 'a') + 'c'
((reverse('') + 't') + 'a' + 'c')
=> 'tac'

关于java - 关于子串和递归的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61034203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com