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

中等题,还可以,可完成。

class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        if digits=='':
            return ''
        memo={'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 len(digits)==1:
            return memo[digits]
        i=1
        r=[]
        a=memo[digits[0]]
        while i<len(digits):
            b=memo[digits[i]]
            for j in a:
                for k in b:
                    if j+k not in r:
                        r.append(j+k)
            a=r
            i+=1
            r=[]
        return a
执行用时 :40 ms, 在所有 python3 提交中击败了91.98%的用户
内存消耗 :13.8 MB, 在所有 python3 提交中击败了5.30%的用户
 
 
                                                                                   ——2019.10.18

猜你喜欢

转载自www.cnblogs.com/taoyuxin/p/11698169.html