资讯专栏INFORMATION COLUMN

九宫格键盘输入

Xufc / 1788人阅读

摘要:九宫格键盘输入给定一个数字字符串,返回数字可能代表的所有可能的字母组合。数字到字母的映射就像九宫格电话按钮一样如下图。思路以为例,代表,只需要将其转换成,然后处理,为,将这三个字符分别加到的每一个元素中,得到。重复此过程即可。

九宫格键盘输入 Letter Combinations of a Phone Number

给定一个数字字符串,返回数字可能代表的所有可能的字母组合。

数字到字母的映射(就像九宫格电话按钮一样)如下图。

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.

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

example 1

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

23为例,2代表abc,只需要将其转换成lists = [a,b,c],然后处理33def,将这三个字符分别加到s的每一个元素中,得到["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]。重复此过程即可。

上述思路可以用循环完成,同时python提供的reduce函数和生成式特性能够精炼地表述,下面给出两种代码。

代码
class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        from functools import reduce #python3.x
        if not digits:
            return []
        nums = "0 1 abc def ghi jkl mno pqrs tuv wxyz".split(" ")
        return reduce(lambda last, d: [x + y for x in last for y in nums[int(d)]], digits, [""])  # 第三个参数是initial



    


    #使用循环完成
    def letterCombinations_old(self, digits):
        if not digits:
            return []
        nums = "0 1 abc def ghi jkl mno pqrs tuv wxyz".split(" ")
        ret = [_ for _ in nums[int(digits[0])]]
        digits = digits[1:]
        while digits:
            ret = [x + y for x in ret for y in nums[int(digits[0])]]
            digits = digits[1:]
        return ret

本题以及其它leetcode题目代码github地址: github地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38667.html

相关文章

  • input 弹起数字键盘的那些坑

    摘要:踩的大坑前言最近有个需求要将全平台的交易密码由原来的位复杂密码改为位纯数字交易密码,涉及到非常多的业务场景,但修改起来也无非两种设置交易密码,使用交易密码设置交易密码普通长条输入框弹起数字键盘支持明暗文切换查看使用交易密码显示六个格子弹起 input ios 踩的大坑 前言:最近有个需求要将全平台的交易密码由原来的 6-16位 复杂密码改为6位纯数字交易密码,涉及到非常多的业务场景,但...

    imccl 评论0 收藏0
  • 前端每日实战:164# 视频演示如何用原生 JS 创作一个数独训练小游戏(内含 4 个视频)

    摘要:第部分第部分第部分第部分源代码下载每日前端实战系列的全部源代码请从下载代码解读解数独的一项基本功是能迅速判断一行一列或一个九宫格中缺少哪几个数字,本项目就是一个训练判断九宫格中缺少哪个数字的小游戏。 showImg(https://segmentfault.com/img/bVbkNGa?w=400&h=300); 效果预览 按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预...

    Heier 评论0 收藏0
  • 前端每日实战:164# 视频演示如何用原生 JS 创作一个数独训练小游戏(内含 4 个视频)

    摘要:第部分第部分第部分第部分源代码下载每日前端实战系列的全部源代码请从下载代码解读解数独的一项基本功是能迅速判断一行一列或一个九宫格中缺少哪几个数字,本项目就是一个训练判断九宫格中缺少哪个数字的小游戏。 showImg(https://segmentfault.com/img/bVbkNGa?w=400&h=300); 效果预览 按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预...

    OBKoro1 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<