leetcode力扣17.电话号码的字母组合

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

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

示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        dict_phone = {
        '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']}
        temp = ''
        res = []
        def backtrack(word, temp):
            if words:
                for j in dict_phone[word[0]]:
                    temp = temp + j
                    backtrack(word[1:], temp)
                    if len(word)==1:
                        res.append(temp)
                    temp = temp[:-1]
            else:
                pass
        backtrack(digits, temp)
        return res

在脑海里形成一个树的概念就可以了解这道题的原理,从第一个字母的三个根分散开来。

发布了302 篇原创文章 · 获赞 161 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/qq_32146369/article/details/104070799