packagemyprac.LeetCode;importjava.util.ArrayList;importjava.util.List;public classStringPermutation {/*public static ArrayList Permutation(String str) {
ArrayList list = new ArrayList<>();
if(str==null || str.length()==0){
return list;
}
char[] chars = str.toCharArray();
sort(list,0,chars);
Collections.sort(list);
return list;
}
private static void sort(ArrayList list, int i, char[] chars) {
if(i==chars.length-1){//i=2执行
list.add(new String(chars));
}
for(int index = i;i
if (index==i){
sort(list, index+1, chars);
}else if(chars[i]!=chars[index]){
swap(chars,i,index);
sort(list, index+1, chars);
swap(chars,i,index);
}
}
}
private static void swap(char[] chars, int i, int index) {
char c=chars[i];
chars[i]=chars[index];
chars[index] = c;
}
public static void main(String[] args) {
String s = "aba";
System.out.println(Permutation(s));
}*/
public static List>permute(String str) {
List> list = new ArrayList<>();
backtrack(list,new ArrayList(), str.toCharArray());returnlist;
}private static void backtrack(List> list, List tempList, char[] chars){if(tempList.size() ==chars.length){
list.add(new ArrayList<>(tempList));
}else{for(int i = 0; i < chars.length; i++){if(tempList.contains(chars[i])){continue;
}
tempList.add(chars[i]);
backtrack(list, tempList, chars);
tempList.remove(tempList.size()- 1);
}
}
}public static voidmain(String[] args){
String string= "abc";
System.out.println(permute(string));
}
}