Friday, July 31, 2020

784. Letter Case Permutation --E

Q:

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.

A:

class Solution {
public:
    vector<string> letterCasePermutation(string S) {
        vector<string> res;
        if(S.length()==0)
            return res;
        res.push_back("");
        for(char ch:S)
        {
            vector<string> newS;
            vector<char> A;
            if(isalpha(ch)){
                A.push_back(toupper(ch));
                A.push_back(tolower(ch));
            }else{
                A.push_back(ch);
            }
            for(auto c:A)
            {
                for(auto ss:res)
                    newS.push_back( ss + c);
            }
            res = newS;
        }
        return res;
    }
};


No comments:

Post a Comment