穷举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;//大写转小写
    }
相关推荐
DuHz5 分钟前
亚毫米波FMCW脉冲多普勒雷达:粒子云动态特性表征技术深度解析
论文阅读·物联网·算法·信息与通信·毫米波雷达
hz_zhangrl9 分钟前
CCF-GESP 等级考试 2025年12月认证C++二级真题解析
c++·算法·gesp·gesp2025年12月·c++二级
量子炒饭大师25 分钟前
Cyber骇客的层级霸权——【优化算法】之【排序算法】堆排序
c语言·c++·算法·排序算法
cpp_250134 分钟前
P8597 [蓝桥杯 2013 省 B] 翻硬币
数据结构·c++·算法·蓝桥杯·题解
前端小L1 小时前
双指针专题(四):像毛毛虫一样伸缩——「长度最小的子数组」
javascript·算法·双指针与滑动窗口
杨云龙UP1 小时前
Windows环境下安装SQL Server 2016企业版+SP3补丁+SSMS连接操作手册_20251230
运维·服务器·数据库·sql·算法·sqlserver·哈希算法
环黄金线HHJX.1 小时前
【拼音字母量子编程语言AiPQL】
开发语言·ide·人工智能·算法·编辑器·量子计算
(❁´◡`❁)Jimmy(❁´◡`❁)1 小时前
Graph and Queries UVA - 1479
算法
不忘不弃1 小时前
把IP地址转换为字符串
数据结构·tcp/ip·算法
发疯幼稚鬼1 小时前
网络流问题与最小生成树
c语言·网络·数据结构·算法·拓扑学