leetcode之-题17

题目

Given a digit string, 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.

Input:Digit string “23” Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].

题解

思路

1 使用字典存储每个键代表的字母 2 获得输入的数字 3 迭代对输入的数字进行组合

python代码

class Solution(object):
    def combine(self, str1, str2):
        """
        :type str1: list[str]
        :type str2: list[str]
        :rtype: list[str]
        """
        """
        对两个list进行合并,比如['a','b']和['d','e'合并为['ad','ae','bd','be']
        """
        ret = []
        if len(str1) == 0:
            return str2
        if len(str2) == 0:
            return str1
        for x in str1:
            for y in str2:
                ret.append(x+y)
        return ret

    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        ret = []
        if len(digits) == 0:
            return ret
        dic = dict({'2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'})
        for x in digits:
            str2 = list(dic[x])
            ret = self.combine(ret,str2)
        return ret     

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始的linux

shell变量

bash的重要特性:变量 bash变量类别: 本地变量:只对当前shell进程有效的变量;对其它shell进程无效,包当...

3136
来自专栏Google Dart

资源读取配置 原

752
来自专栏CodingBlock

Android查缺补漏(View篇)--布局文件中的“@+id”和“@id”有什么区别?

Android布局文件中的“@+id”和“@id”有什么区别? +id表示为控件指定一个id(新增一个id),如: <cn.codingblock.view.c...

3058
来自专栏闵开慧

ajax异步操作1

ajaxTest.html <html> <head> <meta http-equiv="Content-Type" content="text/htm...

3218
来自专栏刘晓杰

Glide中request的调用和管理

3407
来自专栏酷玩时刻

Android MVP 构架初试

目前讨论MVP MVVM 的架构也来越多,这种构架也很适合Android。研究MVP记录如下

1473
来自专栏函数式编程语言及工具

Scalaz(59)- scalaz-stream: fs2-程序并行运算,fs2 running effects in parallel

    scalaz-stream-fs2是一种函数式的数据流编程工具。fs2的类型款式是:Stream[F[_],O],F[_]代表一种运算模式,O代表Str...

1756
来自专栏非著名程序员

Base封装之我的最简MVP架构

绪论 最近懒癌症犯了,好久都没写博客了,当然也在做一些东西,也在整理自己一直以来使用的一些技术点,从Retrofit到OkGO,从ListView到Recycl...

2459
来自专栏落花落雨不落叶

leetcode 34. Search for a Range

2706
来自专栏Java3y

JDBC【数据库连接池、DbUtils框架、分页】

1.数据库连接池 什么是数据库连接池 简单来说:数据库连接池就是提供连接的。。。 为什么我们要使用数据库连接池 数据库的连接的建立和关闭是非常消耗资源的 频繁地...

3334

扫码关注云+社区