[英]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.