/**
* 字符串的排列
*
* @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:字符串的排列
最新推荐文章于 2021-11-18 20:14:48 发布