【发布时间】:2020-12-23 04:03:07
【问题描述】:
所以我是一名大三学生,试图理解递归。我了解一般概念,但不了解它是如何正确实施的。我发现了这个非常简单的代码,但似乎无法理解最后一行(递归)是如何工作的。任何帮助和解释都会很棒,谢谢! (也快到决赛了,我很紧张)
public static String reverse(String s) {
if (s.isEmpty())
return s;
return reverse(s.substring(1)) + s.charAt(0);
}
【问题讨论】:
-
拿一张纸,使用输入字符串
abc,然后写出所有递归调用发生的情况。这确实是您可以在这里学习的最佳练习。 -
正如@TimBiegeleisen 建议的那样,我认为遵循一次跑步的流程会对您有所帮助。取一个字符串(
abcdefg或任何非对称的),并在返回之前使用额外的System.out.println(s);运行该代码:然后您应该了解它是如何被操纵的
标签: java string recursion substring charat