【leetcode】17.电话号码的字母组合

在这里插入图片描述

class Solution:
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        # 以字典形式存储号码与字母
        d_dict = {'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'],
                  }

        # 组合
        ret = list()
        if len(digits) < 1:
            return ret
        # if len(digits) == 1
        ret = [i for i in d_dict[digits[0]]]
        # if len(digits) > 1
        for i in digits[1:]:
            ret = [ m+n for m in ret for n in d_dict[i] ]

        return ret

在这里插入图片描述