

public class FullPermutation {
private static TreeSet<String> set=new TreeSet<>();
public static void main(String[] args) {
String s="ABC";
char[] arr=s.toCharArray();
permutation(arr,0,arr.length-1);
for (String sub:set){
System.out.println(sub);
}
}
private static void permutation(char[] arr, int from, int to) {
if (from==to) {
set.add(String.valueOf(arr));
}
for (int i=from;i<=to;i++){
swap(arr,i,from);
permutation(arr,from+1,to);
swap(arr,i,from);
}
}
private static void swap(char[] arr, int a, int b) {
char temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}
执行结果
ABC
ACB
BAC
BCA
CAB
CBA
本文介绍了一个使用递归和交换元素的方法来生成字符串的所有可能排列的Java程序。通过一个具体的示例,展示了如何利用TreeSet去除重复的排列组合,并在控制台上打印出所有可能的全排列结果。

1791

被折叠的 条评论
为什么被折叠?



