gpt4 book ai didi

java - 使用递归反转字符串,但为什么它不打印整个字符串?

转载 作者:行者123 更新时间:2023-12-01 07:48:49 25 4
gpt4 key购买 nike

public static void main(String[] args)
{
String string="HelloWorld";
char ch = string.charAt(string.length()-1);
maximum(string,ch,string.length()-2);
}

public static void maximum(String string,char ch,int length)
{
if(length==0)
return;
System.out.println(ch);
maximum(string,string.charAt(length),length-1);
}

打印

d
l
r
o
w
o
l
l

而不是

d
l
r
o
w
o
l
l
e
h

为什么?

最佳答案

在这里进行递归并不是您真正应该做的事情。但是,假设这是一个学习练习,我在这里看到两个问题:

  1. 您将在打印索引 0 字符之前返回。
  2. 您仅在调用下一个递归级别期间检索当前索引。这意味着您的 ch 始终落后于索引。

也许可以做这样的事情:

public static void main(String[] args)
{
String string="HelloWorld";
maximum(string, string.length()-1);
}

public static void maximum(String string, int length)
{
System.out.println(string.charAt(length))
if(length==0)
return;
maximum(string, length-1);
}

关于java - 使用递归反转字符串,但为什么它不打印整个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400009/

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