【发布时间】:2012-04-17 10:45:32
【问题描述】:
所以我在递归作业的最后一部分遇到了一些麻烦。该方法需要使用递归来返回一个字符串,该字符串由作为参数的两个字符串“编织”在一起形成。例如:
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 语句中添加了一个测试,看看我的程序在哪里。
【问题讨论】:
-
告诉你的输出应该是什么样子
-
@LiviuT。他们确实在示例的开头说明了预期的最终结果。
-
@LiviuT。查看第一个代码块的 cmets。
-
尝试使用私有辅助函数,带有第三个参数。
-
当我读到这个问题时,我觉得我的大脑僵住了 :) 对此感到抱歉