例子
例如輸入字符串abc,則輸出由字符a、b、c所能排列出來的所有字符串abc、acb、bac、bca、cab和cba。
java代碼
public void sort(List<Character> oldChars, int k, List<String> res) {
if (k == oldChars.size() - 1){//輸出這個排列
String resTemp = "";
for (int i = 0; i < oldChars.size(); i++) {
System.out.print(oldChars.get(i) + " ");
resTemp += oldChars.get(i);
}
res.add(resTemp);
System.out.println();
}
for (int i = k; i < oldChars.size(); i++) {
System.out.println("走進for循環中 i=" + i);
Character temp = oldChars.get(i);
oldChars.set(i, oldChars.get(k));
oldChars.set(k, temp);
sort(oldChars, k+1, res);
//再換回來
Character temp1 = oldChars.get(i);
oldChars.set(i, oldChars.get(k));
oldChars.set(k, temp1);
}
}