穷举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;//大写转小写
    }
相关推荐
能源系统预测和优化研究1 分钟前
【原创代码改进】基于贝叶斯优化的PatchTST综合能源负荷多变量时间序列预测
算法·回归·transformer·能源
小龙报5 分钟前
【C语言初阶】动态内存分配实战指南:C 语言 4 大函数使用 + 经典笔试题 + 柔性数组优势与内存区域
android·c语言·开发语言·数据结构·c++·算法·visual studio
小龙报9 分钟前
【算法通关指南:算法基础篇(三)】一维差分专题:1.【模板】差分 2.海底高铁
android·c语言·数据结构·c++·算法·leetcode·visual studio
小白程序员成长日记14 分钟前
2025.12.07 力扣每日一题
算法·leetcode·职场和发展
小李小李快乐不已23 分钟前
图论理论基础(5)
数据结构·c++·算法·机器学习·动态规划·图论
民乐团扒谱机26 分钟前
【微实验】大规模网络的社区检测Clauset–Newman–Moore聚类算法(附完整MATLAB代码)
算法·matlab·聚类·聚类算法·cnm·语义
4***997432 分钟前
工业网关助力Altivar320与S7-1200协同运行
ide·python·算法·spring·eclipse·sqlite·tornado
IT·小灰灰32 分钟前
DeepSeek-V3.2:开源大模型的里程碑式突破与硅基流动平台实战指南
大数据·人工智能·python·深度学习·算法·数据挖掘·开源
AI视觉网奇9 小时前
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr
开发语言·c++·算法
ghie90909 小时前
ECG波形检查与分析系统
算法