Letter Case Permutation

Given a string s, you can transform every letter individually to be lowercase or uppercase to create another string.

Return a list of all possible strings we could create. Return the output in any order.

 

Example 1:

Input: s = "a1b2"
Output: ["a1b2","a1B2","A1b2","A1B2"]

Example 2:

Input: s = "3z4"
Output: ["3z4","3Z4"]

 

Constraints:

  • 1 <= s.length <= 12
  • s consists of lowercase English letters, uppercase English letters, and digits.
SOLUTION:
class Solution:
    def getStr(self, s, i, n, curr):
        if i >= n:
            self.res.append(curr)
            return
        if s[i].isdigit():
            self.getStr(s, i + 1, n, curr + s[i])
        else:
            self.getStr(s, i + 1, n, curr + s[i].lower())
            self.getStr(s, i + 1, n, curr + s[i].upper())
    
    def letterCasePermutation(self, s: str) -> List[str]:
        self.res = []
        n = len(s)
        self.getStr(s, 0, n, "")
        return self.res

Comments

Popular posts from this blog

Lazy Deletion in Heap: A Wrapper for Python heapq

Sliding Window GCD

Degree of an Array