• 欢迎光临~

784. 字母大小写全排列

开发技术 开发技术 2022-10-30 次浏览

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);
        }

    }
}
程序员灯塔
转载请注明原文链接:784. 字母大小写全排列
喜欢 (0)