gpt4 book ai didi

java - 如何在java中使用递归创建一系列子字符串

转载 作者:行者123 更新时间:2023-12-02 09:03:01 25 4
gpt4 key购买 nike

因此,任务是创建一个字符串,在字符串的字母中进行渐进,返回逐渐变长的子字符串。例如,如果输入是 Book,则答案将为: BBoBooBook 。对于输入 Soup,该方法将返回 SSoSouSoup。我想递归地写。在我当前的方法中,我没有收到任何错误,但同时编译器也没有给出任何答复。

public static String stringProgression(String str) {
int index = 1;
String result = "";
if (str.length() == 0) {
return "" ;
} else while (index <= str.length()); {
result = result + stringExplosion(str.substring(0, index));
index++;
}
return result;
}

最佳答案

在您的代码中,您使用了两个不同的方法名称:stringProgressionstringExplosion .

此外,您还有一个 while带分号的循环,while (index <= str.length());这形成一个空循环。自 index在这个空循环中不会改变,当条件满足时,它将是一个无限循环。

一般来说,while循环与递归解决方案的意图相矛盾。

要找到问题的递归解决方案,您必须找到其中的自相似性。 IE。当您查看 Book 的预期结果时, BBoBooBook ,你可以认出开头,BBoBoo是字符串 Boo 的正确结果,和BBoBo 的正确结果。因此,原始字符串必须附加到子字符串的递归计算结果中:

public static String stringProgression(String str) {
if(str.isEmpty()) {
return str;
}
return stringProgression(str.substring(0, str.length() - 1)) + str;
}

另一种更短的语法是:

public static String stringProgression(String str) {
return str.isEmpty()? str: stringProgression(str.substring(0, str.length() - 1)) + str;
}

关于java - 如何在java中使用递归创建一系列子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031280/

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