zoukankan      html  css  js  c++  java
  • LeetCode:17. *的字母组合

    1、题目描述

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

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

    示例:

      输入:"23"

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

    2、题解

    2.1、解法一

      原理:回溯算法

    class Solution:
        dic = {
            "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"],
        }
    
        def sum_letter(self, l1, l2):
            ret = []
            for i in range(len(l1)):
                for j in range(len(l2)):
                    ret.append(l1[i]+l2[j])
            return ret
    
        def letterCombinations(self, digits):
            """
            :type digits: str
            :rtype: List[str]
            """
            n = len(digits)
            if n == 0:
                return []
            first = digits[0]
            other = digits[1:]
            if len(digits) == 1:
                return self.dic[digits]
            ret = self.sum_letter(self.dic[first],self.letterCombinations(other))
            return ret
    

      

  • 相关阅读:
    会跳舞的树(只用HTML+CSS)(转)
    国内UED收录
    HDU 1078 dfs+dp
    HDU 1278
    HDU 4499
    HDU 4597
    POJ2777
    POJ1780 Code
    简单的Fleury算法模板
    POJ 2513 无向欧拉通路+字典树+并查集
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10064909.html
Copyright © 2011-2022 走看看