
String Array Permutation
解法参考自stack overflow的一个solution
递归方法:
1 2 3 4 5 6 7 8 9 10 11 12
|
private static void ( Vector<Vector<String>> bigVector, String accumulator){ if(bigVector.isEmpty()){ System.out.println(accumulator); } else{ for(String word : bigVector.get(0)){ Vector<Vector<String>> r = new Vector<Vector<String>>(bigVector.subList(1, bigVector.size())); printWords(r, accumulator + " " + word); } } }
|
调用时使用
非递归方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
private static void printCombinations(Vector<Vector<String>> outer){ int c = outer.size(); int row = 1; for(Vector<String> v : outer){ row *= v.size(); } int[] column = new int[c]; int count = 0; for(int j = 0; j < row; j++){ for(int i = 0; i < column.length; i++){ System.out.println(outer.get(i).get(column[i]) + " "); } System.out.println(); column[count]++; while(column[count] == outer.get(count).size()){ column[count] = 0; count++; if(count == c) return; column[count]++; } count = 0; } }
|
近期评论