[英]Generate all permutations of ArrayList<String> of a given length
我正在尝试创建一种算法,其中该方法采用ArrayList并指定了输出的长度。 该方法的工作是在指定的数组列表中打印项目的所有可能排列。 例如,如果arraylist为1,2且给定的长度为3,则其输出应为112,122,121,212
可以通过将所有可能的字符递归添加到现有结果中来构建结果,直到达到所需的长度。 您从空结果开始。 算法很简单:
public static void main(String... arg) {
int n = 2;
int l = 3;
List<String> a = new ArrayList<>();
for (int i = 0; i < n; i++) {
a.add(Integer.toString(i+1));
}
perm(a, "", l);
}
private static void perm(List<String> a, String result, int l) {
if (result.length() == l) {
System.out.println(result);
return;
}
for (int i = 0; i < a.size(); i++) {
String nr = result + a.get(i);
perm(a, nr,l );
}
}
输出:
111
112
121
122
211
212
221
222
尝试此处提供的解决方案(包括评论部分中的解决方案)
http://www.geeksforgeeks.org/print-all-combinations-of-given-length/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.