leetcode_17. 电话号码的字母组合

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

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



示例:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
from typing import List
class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        if not digits:return []
        ans=[]
        d={
            2:'abc',
            3:'def',
            4:'ghi',
            5:'jkl',
            6:'mno',
            7:'pqrs',
            8:'tuv',
            9:'wxyz'
        }
        def dfs(q,digits:str):
            if not digits:
                ans.append(q)
            else:
                for x in d[int(digits[0])]:
                    dfs(q+x,digits[1:])
                
        dfs('',digits)
        return ans
from typing import List
class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        if not digits:return []
        ans=['']
        d={
            2:'abc',
            3:'def',
            4:'ghi',
            5:'jkl',
            6:'mno',
            7:'pqrs',
            8:'tuv',
            9:'wxyz'
        }
        for x in digits:
            n=len(ans)
            for i in range(n):
                t=ans.pop(0)
                for y in d[int(x)]:
                    ans.append(t+y)
posted @ 2020-12-10 15:11  hqzxwm  阅读(50)  评论(0编辑  收藏  举报