给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。
返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。
示例 1:
输入:s = "a1b2" 输出:["a1b2", "a1B2", "A1b2", "A1B2"]
思路:写一个递归函数分别判断每一个字符,字母就以大小写两种形式进入递归,数字就直接加
代码
from typing import List def trans(s, s1, i, l): n = len(s) while i < n and 47 < ord(s[i]) < 58: s1 += s[i] i += 1 if i == n: l.append(s1) return 0 s2 = s1 s1 += s[i].lower() trans(s, s1, i + 1, l) s2 += s[i].upper() trans(s, s2, i + 1, l) return 0 class Solution: def letterCasePermutation(self, s: str) -> List[str]: l = list() s1 = '' trans(s, s1, 0, l) return l s = "a1b2" a = Solution() print(a.letterCasePermutation(s))
结果