LeetCode17:Letter Combinations of a Phone Number

Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent.

A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.

Example:

Input: "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

Note:

Although the above answer is in lexicographical order, your answer could be in any order you want.


LeetCode:链接

穷举所有可能的字符串使用dfs来解决。

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        def dfs(num, string, res):
            if num == len(digits):
                res.append(string)
                return 
            for letter in dict[digits[num]]:
                dfs(num+1, string+letter, res)
                
        if not digits:
            return []
        
        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']}
        res = []
        dfs(0, "", res)
        return res

猜你喜欢

转载自blog.csdn.net/mengmengdajuanjuan/article/details/85988049
今日推荐