输入:2
输出:012 021 102 120 201 210
代码:
private static Set<String> result = new HashSet<String>();
public static void allSort(int number) {
if (number < 0) {
return;
}
String str="";
for (int i = 0;i <= number; i++) {
// 拼串
str+=i;
}
char[] ch = str.toCharArray();
allSort(ch,0,str.length());
}
public static void allSort(char[] str,int start,int end) {
if (str == null || start > end || start < 0)
return;
if (start == end)
// 去重
result.add(String.valueOf(str));
for (int i = start; i < end; i++) {
swap(str,i,start);
allSort(str,start + 1,end);
// 还原
swap(str,i,start);
}
}
public static void swap(char[] str,int left,int right) {
char temp = str[left];
str[left] = str[right];
str[right] = temp;
}