字符串的排列

思路:
首先求出低一个位置所有可能的字符,即把第一个字符和后面的字符交换,第一个字符确定后,再确定第二个位置,也是执行相关的交换操作。DFS

 public ArrayList Permutation(String str) {
        ArrayList res=new ArrayList<>();
        if(str==null||str.length()==0)
             return res;
        char[] ch=str.toCharArray();
        int len=str.length();
        dfs(ch,0,res);
        Collections.sort(res);
        return  res;
    }
     
    public void  dfs(char[] ch,int index,ArrayList res){
        if(index==ch.length){
            if(!res.contains(String.valueOf(ch))){
                res.add(String.valueOf(ch));
            }
        }
        for(int i=index;i

字符串的排列_第1张图片
Paste_Image.png

Leetcode

你可能感兴趣的:(字符串的排列)