题目形容
给定一个仅蕴含数字 2-9 的字符串,返回所有它能示意的字母组合。答案能够按 任意程序 返回。
给出数字到字母的映射如下(与电话按键雷同)。留神 1 不对应任何字母。
示例 1:
输出:digits = "23"输入:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:
输出:digits = ""输入:[]
示例 3:
输出:digits = "2"输入:["a","b","c"]
提醒:
0 <= digits.length <= 4digits[i] 是范畴 ['2', '9'] 的一个数字。
参考代码
class Solution: def letterCombinations(self, digits: str) -> List[str]: if not digits: return [] num_map = { "2": "abc", "3": "def", "4": "ghi", "5": "jkl", "6": "mno", "7": "pqrs", "8": "tuv", "9": "wxyz", } def dfs(idx, temp): if idx == len(digits): ret.append(temp) else: digit = digits[idx] for c in num_map[digit]: temp += c dfs(idx + 1, temp) # 移除计算过的数 temp = temp[:-1] temp = "" ret = [] dfs(0, temp) return ret
以上就是本次分享的全部内容,当初想要学习编程的小伙伴欢送关注Python技术大本营,获取更多技能与教程。