• 784. Letter Case Permutation


    Problem:

    Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string. Return a list of all possible strings we could create.

    Examples:

    Input: S = "a1b2"
    Output: ["a1b2", "a1B2", "A1b2", "A1B2"]
    
    Input: S = "3z4"
    Output: ["3z4", "3Z4"]
    
    Input: S = "12345"
    Output: ["12345"]
    

    Note:

    • S will be a string with length between 1 and 12.
    • S will consist only of letters or digits.

    思路

    Solution (C++):

    vector<string> letterCasePermutation(string S) {
        vector<string> res;
        backtrack(S, 0, res);
        return res;
    }
    void backtrack(string& s, int i, vector<string>& res) {
        if (i == s.size()) {
            res.push_back(s);
            return;
        }
        backtrack(s, i+1, res);
        if (isalpha(s[i])) {
            s[i] ^= (1 << 5);
            backtrack(s, i+1, res);
        }
    }
    

    性能

    Runtime: 24 ms  Memory Usage: 9.6 MB

    思路

    Solution (C++):

    
    

    性能

    Runtime: ms  Memory Usage: MB

    相关链接如下:

    知乎:littledy

    欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

    作者:littledy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    CentOS7 防火墙firewalld详细操作
    bootstrap-datetimepicker 滚动错位问题
    Contos更换python版本
    centos7.3下使用yum 安装pip
    备注
    jenkins与SVN 问题记录
    kafka配置
    Jenkins 与github配置
    nginx File not found 错误
    nginx 总结
  • 原文地址:https://www.cnblogs.com/dysjtu1995/p/12736794.html
Copyright © 2020-2023  润新知