穷举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;//大写转小写
    }
相关推荐
kaikaile19957 分钟前
ISODATA聚类方法在MATLAB中的实现指南
算法·matlab·聚类
梭七y9 分钟前
【力扣hot100题】(122)回文链表
算法·leetcode·链表
J_liaty11 分钟前
雪花主键(Snowflake ID)算法详解
算法
tobias.b21 分钟前
408真题-2009-7-数据结构-无向连通图性质
数据结构·算法·408考研·408真题·真题解析
leo__52042 分钟前
基于C语言的FOC算法核心模块实现
c语言·算法·机器学习
kisshuan1239643 分钟前
仪表盘数字识别-基于YOLOv8改进的EUCB-SC算法实现
算法·yolo
w-w0w-w1 小时前
C++泛型编程
开发语言·c++·算法
alphaTao1 小时前
LeetCode 每日一题 2025/12/29-2026/1/4
算法·leetcode
ShaderJoy1 小时前
ShaderJoy —— 《对称镜面下的绞肉机》【算法悬疑短文】【Python】
算法·leetcode·面试
智驱力人工智能1 小时前
在安全与尊严之间 特殊人员离岗检测系统的技术实现与伦理实践 高风险人员脱岗预警 人员离岗实时合规检测 监狱囚犯脱岗行为AI分析方案
人工智能·深度学习·opencv·算法·目标检测·cnn·边缘计算