public class Main {
public static void main(String[] args) {
char[] input = { 'a', 'b', 'c' };
range(input, 0, input.length);
}
//思路:不断从剩余的字符数组中选取一个字符组成新的全排列
private static void range(char[] input, int start, int len) {
if (start == len - 1) {
System.out.println(new String(input));
}
for (int i = start; i < len; i++) {
swap(input, start, i);
range(input, start + 1, len);
swap(input, start, i);//记得还原
}
}
private static void swap(char[] input, int i, int j) {
char t = input[i];
input[i] = input[j];
input[j] = t;
}
}
非重复字符数组的全排列
最新推荐文章于 2022-01-25 16:05:58 发布