class Solution {
Set<String> set = new HashSet<>();
public String[] permutation(String s) {
helper(s.toCharArray(),new int[s.length()],new StringBuilder());
return set.toArray(new String[0]);
}
//chars是选择列表, flags是已选择列表
public void helper(char[] chars,int[] flag,StringBuilder sb){
if(sb.length()==chars.length){
set.add(sb.toString());
return;
}
for(int i =0;i<chars.length;i++){
// 剪枝
if(flag[i]==1){
continue;
}
sb.append(chars[i]);
flag[i]=1;
helper(chars,flag,sb);
flag[i]=0;
//回溯
sb.deleteCharAt(sb.length()-1);
}
}
}