资讯专栏INFORMATION COLUMN

九宫格键盘输入

Xufc / 1541人阅读

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

九宫格键盘输入 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

相关文章

  • C | 简易版扫雷的实现

    摘要:目录前言游戏实现函数的实现游戏相关规则说明的函数棋盘初始化函数的实现随机生成雷的函数的实现打印数组函数的实现修改数组的函数的实现扫雷过程函数的实现修改数组的函数的实现汇总结语前言相信大家小时候都玩过扫雷小游戏吧在网络并 ...

    cloud 评论0 收藏0
  • input 弹起数字键盘的那些坑

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

    imccl 评论0 收藏0
  • AutoLayout:UITableViewCell 自适应高度的一个例子

    摘要:九宫格每张图的大小是,上下左右有的间距,所以总长宽为。九宫格的九张图片因为排布整齐,所以我直接用的一个。当我们要显示单张大图的时候,通过代码隐藏九宫格。如图九宫格图片数量变化时手动适应高度九宫格图片数量不够时,当然是通过隐藏多余的格子。 原文链接:AutoLayout:UITableViewCell 自适应高度的一个例子 目的 我在模拟微博客户端。 要实现:当一条微博包含 2-9 张图...

    caiyongji 评论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元查看
<