题目
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