/**
* 字符串的排列
*
* @param s
*/
public void permutation(String s) {
char[] arr = s.toCharArray();
process(arr, 0);
}
/**
* 每次讓首字母和後面的交換
*
* @param arr
* @param index
*/
private void process(char[] arr, int index) {
if (index == arr.length) {
System.out.println(new String(arr));
return;
}
for (int i = index; i < arr.length; i++) {
swap(arr, i, index);
process(arr, index + 1);
swap(arr, i, index);
}
}
private void swap(char[] arr, int l, int r) {
char t = arr[l];
arr[l] = arr[r];
arr[r] = t;
}
劍指Offer學習-面試題38:字符串的排列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.