784. 字母大小写全排列

784. 字母大小写全排列

字母大小写全排列

题解: 按题意模拟,DFS遍历string的每个下表字符,并对其按题意操作,遍历完添加到答案。

class Solution {
    public List<String> letterCasePermutation(String s) {
        char[] chars = s.toCharArray();
        List<String> res = new ArrayList<>();
        dfs(chars, 0, res);
        return res;
    }

    public void dfs(char[] chars, int i, List<String> res) {
        if (i >= chars.length) {
            res.add(new String(chars));
            return;
        }
        char ch = chars[i];
        // 大写字母
        if ('A' <= ch && ch <= 'Z') {
            dfs(chars, i + 1, res);
            chars[i] = (char) (ch + 32);
            dfs(chars, i + 1, res);
        }
        // 小写字母
        else if ('a' <= ch && ch <= 'z') {
            dfs(chars, i + 1, res);
            chars[i] = (char) (ch - 32);
            dfs(chars, i + 1, res);
        } else {
            dfs(chars, i + 1, res);
        }

    }
}
posted @   Eiffelzero  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示