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.递归,遍历字符串,当当前字符为字母时,设大小字符情况分别递归,直至遍历完毕。
python版本:
class Solution: def letterCasePermutation(self, s: str) -> List[str]: res = [] def recursion(str, i): while i < len(str) and not str[i].isalpha(): i += 1 if i == len(str): res.append(str) return recursion(str[:i]+str[i].upper()+str[i+1:], i+1) recursion(str[:i]+str[i].lower()+str[i+1:], i+1) recursion(s, 0) return res