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 条评论
登录 后参与评论

相关文章

来自专栏有趣的Python

慕课网-C++远征之模板篇(上)-学习笔记

C++远征之模板篇 将会学到的内容: 模板函数 & 模板类 -> 标准模板类 友元函数 & 友元类 静态数据成员 & 静态成员函数 运算符重载。 友元函数 函数...

3615
来自专栏专注研发

poj-1131-(大数)八进制转化成十进制

Fractions in octal (base 8) notation can be expressed exactly in decimal notatio...

571
来自专栏算法与数据结构

n! 进制

n! 进制 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory ...

1999
来自专栏一个会写诗的程序员的博客

第11章 运算符重载与约定第11章 运算符重载与约定

我们在《第2章 Kotlin 语法基础》中已经学习过关于运算符的相关内容,本章将继续深入探讨Kotlin中的运算符的重载与约定。

954
来自专栏逸鹏说道

Python3 与 C# 基础语法对比(新排版)

VSCode设置python3的开发环境(linux下默认是python2)https://www.cnblogs.com/dotnetcrazy/p/9095...

832
来自专栏逸鹏说道

Python3 与 C# 扩展之~基础拓展

看着小张准备回家换衣服了,小明有点失落,又有点孤单,于是说道:“逗逼张,你还要听吗?我准备讲类相关的知识了,这些可是我课后自学的哦~”

1044
来自专栏Google Dart

Dart语言指南(二) 顶

Dart是一种面向对象的语言 包含类和基于 mixin 的继承两部分。每个对象是一个类的实例, 并且 Object.是所有类的父类。 基于 mixin 的继承指...

451
来自专栏hbbliyong

LINQ查询操作符 LINQ学习第二篇

一、投影操作符 1. Select Select操作符对单个序列或集合中的值进行投影。下面的示例中使用select从序列中返回Employee表的所有列: ...

3375
来自专栏工科狗和生物喵

【计算机本科补全计划】Java学习笔记(八) Java数组

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储--固定--大小的同类型元素。

983
来自专栏King_3的技术专栏

leetcode-747-Largest Number At Least Twice of Others(求vector的最大值和次大值)

2374

扫码关注云+社区