[LeetCode]17、电话号码的字母组合

题目描述

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。


电话号码

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

思路

回溯

class Solution:
    def letterCombinations(self, digits):
        lookup = {
            "2": "abc",
            "3": "def",
            "4": "ghi",
            "5": "jkl",
            "6": "mno",
            "7": "pqrs",
            "8": "tuv",
            "9": "wxyz"
        }
        if not digits:
            return []
        n = len(digits)
        res = []
        def helper(temp, i):
            '''
            
            :param temp: 表示即将形成的数组
            :param i: 代表第n个数字
            :return: 
            '''
            # 表示满足条件
            if i == n:
                res.append(temp)
                return 
            for a in lookup[digits[i]]:
                helper(temp + a, i + 1)
        helper([], 0)
        return res

AC17
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容