【发布时间】:2015-03-01 23:10:04
【问题描述】:
我正在尝试查找单词的所有排列并将其添加到 Arraylist 并返回数组列表。但是,我相信我的递归是正确的,但是将结果添加到 ArrayList 时存在问题。这就是我目前所拥有的。我传递的参数是“吃”和“”,返回的是“茶”3次
public static ArrayList<String> permutations(String word, String beginning)
{
int l = word.length();
ArrayList<String> temp = new ArrayList<String>();
if(l == 0)
temp.add(beginning + word);
else
{
char c = word.charAt(l-1);
String blah = (beginning + c);
word = word.substring(0, l-1);
for(int i = 0; i < l; i++)
{
permutations(word, blah);
temp.add(blah + word);
}
}
return temp;
}
【问题讨论】:
-
递归调用的结果存储在哪里?
permutations(word, blah, temp); -
你有另一种采用 3 个参数的排列方法吗?
-
permutations()有 2 个参数,你用 3 个参数调用它。还有其他函数吗? -
另外,我认为不需要这个 for 循环,因为递归方法无论如何都会经历整个事情......
-
@issathink 哎呀,我只是想将 Arraylist 作为参数传递,但是,这似乎更糟糕,所以我把它改回来了。我只是忘了把它全部改回来,但结果还是一样
标签: java arrays recursion arraylist permutation