每日简单代码,简短代码

import java.util.*;
public class Solution {
    
    

    public ArrayList<String> Permutation(String str) {
        char[] arr = str.toCharArray();
        Arrays.sort(arr);
        boolean[] st = new boolean[str.length()];
        ArrayList<String> ans = new ArrayList<>();
        dfs(arr, st, ans, "");
        return ans;
    }
    private void dfs(char[] arr, boolean[] st, ArrayList<String> ans, String temp) {
        if (temp.length() == arr.length) {
            ans.add(temp);
            return;
        }
        HashSet<Character> set = new HashSet<>();
        for (int i = 0; i < arr.length; i ++ ) {
            if (st[i]) continue;
            if (set.contains(arr[i])) continue;
            set.add(arr[i]);
            st[i] = true;
            dfs(arr, st, ans, temp + arr[i]);
            st[i] = false;
        }
    }
}