gpt4 book ai didi

java - 使用递归组合字符串

转载 作者:行者123 更新时间:2023-11-30 06:30:59 30 4
gpt4 key购买 nike

所以我在递归作业的最后部分遇到了一些麻烦。该方法需要使用递归返回一个字符串,该字符串由作为参数的两个字符串“编织”在一起而成。例如:

weave("aaaa", "bbbb") // should return the string "abababab"
weave("hello", "world") // should return the string "hweolrllod"
weave("recurse", "NOW") // should return the string "rNeOcWurse"

请注意,第一个字符串中的额外字符(“urse”中的字符)出现在编织在一起的字符之后。

重要的(也是烦人的)事情是我不允许使用任何迭代循环(for、while、do while)。

到目前为止,这是我的代码:

public static String weave(String str1, String str2)
{
String word = str1 + str2;
if(str1 == null || str1.equals("") || str2 == null || str2.equals(""))
{
return word;
}
String word1 = weave(str1.substring(0, str1.length() - 1), str2.substring(0, str2.length() - 1));
System.out.println(word1);
return word;
}

对于 (Hello, World),我的输出是:

HW
HeWo
HelWor
HellWorl
HelloWorld

显然我的角色没有编织,所以我不确定该怎么做!此外,如上所述,该方法不应打印。我只是在 println 语句中添加了一个测试,以查看我的程序所在的位置。

最佳答案

我认为像下面这样的东西可能会起作用。

public String weave(String str1, String str2)
{
if(str1.isEmpty() || str2.isEmpty()) {
return str1 + str2;
}
return str1.substring(0, 1) + str2.substring(0, 1) + weave(str1.substring(1), str2.substring(1));
}

这个想法非常简单:您只需要从两个输入字符串中弹出第一个字符,并将两个字符和返回值连接起来,使用剥离的输入字符串递归调用函数,直到其中一个输入字符串为空您应该只返回非空字符串。

weave("abcdef", "12"): "a" + "1" + weave("bcdef", "2")
|
+- weave("bcdef", "2"): "b" + "2" + weave("cdef", "")
|
+- weave("cdef", ""): "cdef"

导致:

weave("abcdef", "12"): "a" + "1" + "b" + "2" + "cdef": "a1b2cdef"

关于java - 使用递归组合字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999044/

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