zoukankan      html  css  js  c++  java
  • leetcode 784. Letter Case Permutation

    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 at most 12.
    S will consist only of letters or digits.
    

    思路:暴力枚举呗

    class Solution {
    public:
        vector<string> ans;
        int judge(char c) {
            if (c <= 'Z' && c >= 'A') return 1;
            if (c <= 'z' && c >= 'a') return -1;
            return 0;
        }
        void dfs(int n, string& s) {
            if (n == s.size()) {
                ans.emplace_back(s);
                return ;
            }
            if (judge(s[n]) != 0) {
                s[n] = tolower(s[n]);
                dfs(n+1, s);
                s[n] = toupper(s[n]);
                
                s[n] = toupper(s[n]);
                dfs(n+1, s);
                s[n] = tolower(s[n]);
            }
            else dfs(n+1, s);
        }
        vector<string> letterCasePermutation(string S) {
            dfs(0, S);
            return ans;
        }
    };
    
  • 相关阅读:
    Luogu P3275 糖果
    Python基础学习
    SharePoint 2013
    Office
    KnockoutJS
    SharePoint 2013
    Bootstrap
    SharePoint 2013
    CSS
    AngularJS
  • 原文地址:https://www.cnblogs.com/pk28/p/8462220.html
Copyright © 2011-2022 走看看