穷举vs暴搜vs深搜vs回溯vs剪枝系列一>字母大小写全排列

题目:


解析:


代码:

java 复制代码
private List<String> ret;
    private StringBuffer path;
    public List<String> letterCasePermutation(String s) {
        ret = new ArrayList<>();
        path = new StringBuffer();
        dfs(s,0);
        return ret;
    }

    private void dfs(String s, int pos){
        
        if(pos == s.length()){
            ret.add(path.toString());
            return;
        } 

        char ch = s.charAt(pos);

        //改变
        if(ch < '0' || ch > '9'){
            char tmp = change(ch);
            path.append(tmp);
            dfs(s,pos+1);
            path.deleteCharAt(path.length()-1);//恢复现场
        }

        //不变
        path.append(ch);
        dfs(s,pos+1);
        path.deleteCharAt(path.length()-1);//恢复现场
    }  

    private char change(char ch){
        if(ch >= 'a' && ch <= 'z') return ch -= 32;//小写转大写
        else return ch += 32;//大写转小写
    }
相关推荐
Jason_Honey211 分钟前
【蚂蚁金服Agent算法岗一面】
人工智能·算法·自然语言处理·面试
weixin_4772716914 分钟前
《老子》一书作者“李耳”简介
算法·图搜索算法
智算菩萨14 分钟前
交错多模态内容生成:从“单张图“到“图文混排长文“的创作范式变革
人工智能·算法·aigc
Flying pigs~~17 分钟前
机器学习之KNN算法
算法·机器学习·大模型·knn·k近邻算法·大数据处理
Navigator_Z27 分钟前
LeetCode //C - 962. Maximum Width Ramp
c语言·算法·leetcode
m0_6727033128 分钟前
上机练习第29天
算法
兩尛29 分钟前
409. 最长回文串
c++·算法·leetcode
(❁´◡`❁)Jimmy(❁´◡`❁)31 分钟前
【KMP】算法详解
算法
智者知已应修善业42 分钟前
【pta反转加法构造回文数c语言1000位】2025-1-31
c语言·c++·经验分享·笔记·算法
List<String> error_P42 分钟前
蓝桥杯基础知识点:模拟-数位操作类题目
python·算法·蓝桥杯