美文网首页
17. Letter Combinations of a Pho

17. Letter Combinations of a Pho

作者: 葡萄肉多 | 来源:发表于2019-10-17 22:04 被阅读0次

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"].

题意

给一个电话键盘,数字对应相应的字母。给一个字符串,包含数字组合,给出相应的所有可能的字母组合。

思路

1.【模板题】求所有组合,考虑BFS或者DFS。



当拼接的字符串长度已经等于输入字符串长度,则保存起来,进入上一层循环。

  1. 遍历。
    使用结果数组res表示遍历到当前的位置已有的结果,那么再遍历下一个位置的时候,把这个位置能形成的所有结果和原来的进行两两组合。

代码

class Solution:
    def letterCombinations(self, digits):
        def dfs(num, string, res):
            if num == length:
                res.append(string)
                return
            for cur in dict[digits[num]]:
                dfs(num + 1, string + cur, res)

        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']
                }
        length = len(digits)
        if length == 0:
            return []
        res = []
        dfs(0, "", res)
        return res
    def letterCombinations2(self, digits):
        if 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 = [""]
        for cur in digits:
            res = [w + c for c in dict[cur] for w in res]
        return res

相关文章

网友评论

      本文标题:17. Letter Combinations of a Pho

      本文链接:https://www.haomeiwen.com/subject/oinvmctx.html