其他分享
首页 > 其他分享> > LeetCode 784 字母大小写全排列

LeetCode 784 字母大小写全排列

作者:互联网

784.字母大小写全排列 力扣

image-20211206181516575

原题链接

我的结果

image-20211206181632386

求解思路

代码

class Solution {
    List<String> ans = new ArrayList<>();
    int dis = 'a'-'A';
    public List<String> letterCasePermutation(String s) {
        
        char[] path = new char[s.length()];
        char[] array = s.toCharArray();
        int len = array.length;
        dfs(0,array,len,path);
        return ans;
    }

    void dfs(int depth, char[] array,int len,char[] path){
        //是数字就往前,但是要注意++操作会让数组越界
    while(depth!=len&&array[depth]<='9'&&array[depth]>='0'){path[depth] = array[depth];depth++;}
       //循环终止条件
        if(depth==len){ans.add(new String(path));return;}
        
        //统统变成大写
        if(array[depth]>='A'&&array[depth]<='Z'){path[depth]=array[depth];}
        else{path[depth] = (char)(array[depth]-dis);}           
            dfs(depth+1,array,len,path);
        
        //统统变成小写
        if(array[depth]>='a'&&array[depth]<='z'){path[depth]=array[depth];}
        else{path[depth] = (char)(array[depth]+dis);}
            dfs(depth+1,array,len,path);
        

    }
}

我太马虎了,一开始总出现"!",断电调试了半天后来发现是+dis -dis搞反了,下回一定要认真!!!

认真,认真,再认真!

程序逻辑错误还得需要 断点调试,断电调试太香了!!!

标签:784,bfs,len,char,depth,大小写,path,array,LeetCode
来源: https://www.cnblogs.com/Rogy/p/15651350.html