動機

複習backtrack

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. You can return the output in any order.

 

Example 1:

Input: s = a1b2Output: [a1b2,a1B2,A1b2,A1B2]

Example 2:

Input: s = 3z4Output: [3z4,3Z4]

Example 3:

Input: s = 12345Output: [12345]

Example 4:

Input: s = 0Output: [0]

 

Constraints:

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

Sol

class Solution:
    def letterCasePermutation(self, s: str,acc="") -> List[str]:
        if not s:
            return [acc]
        elif s[0].isalpha():
            return self.letterCasePermutation(s[1:],acc+s[0].lower())+self.letterCasePermutation(s[1:],acc+s[0].upper())
        else:
            return self.letterCasePermutation(s[1:],acc+s[0])