https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/

# -*- coding:utf-8 -*-

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        KEY = {'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']}
        if digits == '':
            return
        res = ['']
        for each in digits:
            res = [pre + sub for pre in res for sub in KEY[each]]
        return res
if __name__ == '__main__':
    digit = '23'
    print(Solution().letterCombinations(digit))

思路:这道题不是很难,值得一提的就是这个语句嵌套,不得不说python还是方便。

分类: 算法

0 条评论

发表回复

Avatar placeholder

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