【发布时间】:2019-09-02 11:04:17
【问题描述】:
我正在研究排列。我找到了这个算法,但我不完全理解数组列表中发生了什么。我尝试使用字符串数组重写它,但没有成功。
public static ArrayList<String> combinations(String nChars, int k)
{
int n = nChars.length();
ArrayList<String> combos = new ArrayList<String>();
if (k == 0)
{
combos.add("");
return combos;
}
if (n < k || n == 0)
return combos;
String last = nChars.substring(n-1);
combos.addAll(combinations(nChars.substring(0, n-1), k));
for (String subCombo : combinations(nChars.substring(0, n-1), k-1))
combos.add(subCombo + last);
return combos;
}
public static void main(String[] args)
{
String nChars = "ABCDEF";
System.out.println(combinations(nChars, 4));
}
【问题讨论】:
-
请为问题选择合适的标题
-
你遇到了什么错误,是的,请确保选择合适的标题。
-
你能告诉我们你尝试了什么以及你期望的输出是什么?这里面有相当多的递归。
标签: java arrays string arraylist permutation