穷举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;//大写转小写
    }
相关推荐
期货资管源码3 分钟前
期货资管分仓软件开发/平台搭建经验分享
经验分享·算法·eclipse·区块链
Xの哲學17 分钟前
Linux 实时调度机制深度解析
linux·服务器·网络·算法·边缘计算
fie888919 分钟前
基于蚁群算法求解带时间窗的车辆路径问题
数据库·人工智能·算法
ytttr87325 分钟前
基于人工蜂群算法(ABC)的MATLAB数值计算求解框架
开发语言·算法·matlab
珂朵莉MM29 分钟前
2025年睿抗机器人开发者大赛CAIP-编程技能赛-高职组(国赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·机器人
这周也會开心37 分钟前
JVM-垃圾回收器
jvm·算法
橘颂TA37 分钟前
【剑斩OFFER】算法的暴力美学——力扣 844 题:比较含退格的字符串
数据结构·c++·算法·力扣·结构与算法
cici1587441 分钟前
基于正交匹配追踪(OMP)算法的信号稀疏分解MATLAB实现
数据库·算法·matlab
Jeremy爱编码1 小时前
leetcode热题组合总和
算法·leetcode·职场和发展
努力学算法的蒟蒻1 小时前
day57(1.8)——leetcode面试经典150
算法·leetcode·面试