動機
複習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 between1
and12
.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])