[每日一题][找工作第52天][2025-11-13] Leetcode 17. 电话号码的字母组合(优于官方)

题目

17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

 
示例 1:
输入:digits = “23”
输出:[“ad”,”ae”,”af”,”bd”,”be”,”bf”,”cd”,”ce”,”cf”]
示例 2:
输入:digits = “2”
输出:[“a”,”b”,”c”]
 
提示:

  • 1 <= digits.length <= 4
  • digits[i] 是范围 [‘2’, ‘9’] 的一个数字。

我的代码(Python)

class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        data_map = {
            "2": ["a", "b", "c"],
            "3": ["d", "e", "f"],
            "4": ["g", "h", "i"],
            "5": ["j", "k", "l"],
            "6": ["m", "n", "o"],
            "7": ["p", "q", "r", "s"],
            "8": ["t", "u", "v"],
            "9": ["w", "x", "y", "z"]
        }
        result = []
        for digit in digits:
            if not result:
                result = data_map[digit].copy()
            else:
                newResult = []
                for newChar in data_map[digit]:
                    for item in result:
                        newResult.append(item + newChar)
                result = newResult
        return result

点评

和之前的几道题目都类似,思路也基本一样,官方都用回溯, 我都是从前往后计算。


baddif@gmail.com

AI简历优化站

Nonpareil.me:优化简历,助力职场
开源代码

AI求职跟踪器(建设中)

开源代码

主站(建设中)

Nonpareil Me

相关平台

Github Issues / Notion / Blog

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部