zoukankan      html  css  js  c++  java
  • Leetcode784.Letter Case Permutation字母大小写全排列

    给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。

    示例: 输入: S = "a1b2" 输出: ["a1b2", "a1B2", "A1b2", "A1B2"] 输入: S = "3z4" 输出: ["3z4", "3Z4"] 输入: S = "12345" 输出: ["12345"]

    注意:

    • S 的长度不超过12。
    • S 仅由数字和字母组成。

    class Solution {
    public:
        map<string, int> visit;
        int len;
        vector<string> res;
        vector<string> letterCasePermutation(string S)
        {
            len = S.size();
            DFS(S);
            return res;
        }
    
        void DFS(string str)
        {
            visit[str] = 1;
            res.push_back(str);
            for(int i = 0; i < len; i++)
            {
                if(str[i] >= '0' && str[i] <= '9')
                    continue;
                int x = 'a' - 'A';
                char temp = str[i];
                if(str[i] >= 'a' && str[i] <= 'z')
                {
                    str[i] = str[i] - x;
                }
                else
                {
                    str[i] = str[i] + x;
                }
                if(visit[str] == 1)
                    continue;
                DFS(str);
                str[i] = temp;
            }
        }
    };
  • 相关阅读:
    Mybatis插件开发入门,运行原理,例子
    ActiveMQ是什么,为什么使用MQ
    sql优化
    用户注册流程
    JMS入门Demo
    运维自动化之Ansible
    ceph安装部署
    ceph工作原理
    linux进程
    任务计划
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433965.html
Copyright © 2011-2022 走看看