共計 698 個字符,預計需要花費 2 分鐘才能閱讀完成。
可以使用遞歸的方法來實現字符串的全排列。
具體步驟如下:
- 定義一個遞歸函數,傳入一個字符串和兩個索引參數,分別表示當前排列的起始位置和結束位置。
- 如果起始位置等于結束位置,表示已經完成了一次排列,將當前字符串輸出。
- 否則,將當前字符串分為兩部分:第一個字符和剩余的字符。
- 將第一個字符與剩余字符的每一個字符進行交換,得到新的字符串。
- 遞歸調用函數,將新的字符串和起始位置加一作為參數傳入。
- 在遞歸函數返回后,將第一個字符重新放回原來的位置,以便進行下一次交換。
下面是一個示例的 Java 代碼實現:
public class Permutation {public static void main(String[] args) {String str = "abc";
permute(str.toCharArray(), 0, str.length() - 1);
}
public static void permute(char[] arr, int start, int end) {if (start == end) {System.out.println(new String(arr));
} else {for (int i = start; i <= end; i++) {swap(arr, start, i);
permute(arr, start + 1, end);
swap(arr, start, i);
}
}
}
public static void swap(char[] arr, int i, int j) {char temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
以上代碼會輸出字符串“abc”的全排列:
abc
acb
bac
bca
cab
cba
丸趣 TV 網 – 提供最優質的資源集合!
正文完