首页 > 其他分享 >17. 电话号码的字母组合(letterCombinations)

17. 电话号码的字母组合(letterCombinations)

时间:2023-07-28 12:44:34浏览次数:30  
标签:digits 17 示例 res list len letterCombinations 字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

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

示例 1:

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:

输入:digits = ""
输出:[]
示例 3:

输入:digits = "2"
输出:["a","b","c"]
 

提示:

0 <= digits.length <= 4
digits[i] 是范围 ['2', '9'] 的一个数字。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/letter-combinations-of-a-phone-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

题解1:

执行用时:40 ms, 在所有 Python3 提交中击败了65.06%的用户 内存消耗:16.2 MB, 在所有 Python3 提交中击败了18.65%的用户 通过测试用例:25 / 25
class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        source = {
            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"]
        }
        digits_len = len(digits)
        res = []
        if digits_len == 0:
            return res

        digits_list: list[int] = []
        for s in digits:
            digits_list.append(int(s))

        res = source[digits_list[0]]
        if digits_len == 1:
            return res

        for i in range(1, digits_len):
            val_list = source[digits_list[i]]
            temp_res = []
            for rstr in res:
                for vstr in val_list:
                    temp_res.append(rstr+vstr)
            res = temp_res

        return res

 

标签:digits,17,示例,res,list,len,letterCombinations,字母组合
From: https://www.cnblogs.com/tros/p/17587292.html

相关文章

  • P3717 [AHOI2017初中组] cover
    [AHOI2017初中组]cover题目背景以下为不影响题意的简化版题目。题目描述一个\(n\timesn\)的网格图(标号由\(1\)开始)上有\(m\)个探测器,每个探测器有个探测半径\(r\),问这\(n\timesn\)个点中有多少个点能被探测到。输入格式第一行\(3\)个整数\(n,m,r\)。接下来......
  • HDU1702 ACboy needs your help again! 题解
    #include<iostream>#include<string>#include<queue>#include<stack>usingnamespacestd;intt,n,m;intmain(){cin>>t;while(t--){queue<int>q;stack<int>s;stringop,str......
  • 17 位谷歌 Android 开发专家是如何看待 Kotlin 的?
    译者简介:ASCE1885,《Android高级进阶》作者。*微信公众号:asce1885*小密圈:Android高级进阶,详情见这篇文章。*Github,简书,微博,原文链接:https://antonioleiva.com/google-kotlin/,由于Markdown对图片的排版存在限制,因此为了保证排版的美观,本文对作者介绍部分进行截图,不做另......
  • 比JDK最高快170倍,蚂蚁开源一款序列化框架!
    点击“终码一生”,关注,置顶公众号每日技术干货,第一时间送达! Fury是一个基于JIT动态编译和零拷贝的多语言序列化框架,支持Java/Python/Golang/JavaScript/C++等语言,提供全自动的对象多语言/跨语言序列化能力,和相比JDK最高170倍的性能。GitHub地址为:https://github.com/al......
  • 172 侧方入库
    7-27早上电车出了问题,我开车去维修站那里修下午去练侧方停车,又开始了折磨侧方注意点:看点位,控制车速,追线(控制车与边线的距离30cm,也要注意看点),先打左转向灯三秒以上继续加油吧塞翁失马焉知非福1.因为没有提前拿冰箱里面的东西解冻(给狗吃的,我误以为是我家人的晚饭,谁知道看起来......
  • P9017 [USACO23JAN] Lights Off G 题解
    Description给定正整数\(N\),和两个长为\(N\)的\(01\)序列\(a\)和\(b\)。定义一次操作为:将\(b\)序列中的一个值翻转(即\(0\)变成\(1\),\(1\)变成\(0\),下同)。对于\(b\)序列中每个值为\(1\)的位置,将\(a\)序列中对应位置的值翻转。将\(b\)序列向右循环移位......
  • 20230717
    挂惨了\(100+1+3+0=104\)\(rank=?\)这里我要点名批评那位收代码的老师,她告诉我交\(ZIP\)没关系,hhx爷爷的ZIP是没问题,可能是我太弱了。T1珠宝(jewel)题意:一个\(01\)背包,只不过个数\(n<=1e6\),询问的总花费\(k<=5e4\),每一件的花费\(c[i]<=300\),价值\(v[i]<=1e9\)解法:首......
  • P3704 [SDOI2017] 数字表格 题解
    一、题目描述:用$f_i$表示斐波那契数列的第$i$项,那么有:$f_0=0,f_1=1;f_n=f_{n-1}+f_{n-2},n\ge2$现在有一个$n$行$m$列的数字表格,第$i$行第$j$列的数字是$f_{\gcd(i,j)}$。求这个表格所有数的乘积。共有$T$组数据,答案对$10^9+7$取模。......
  • 在windows平台使用Visual Studio 2017配置opencv开发环境
    opencv介绍OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方......
  • 2017年湖南省对口高考真题
    一、选择题1、下列C语言标识符错误的是__________。A.ABc              B.abc              C.A_bc             D.Ab.c2、分析以下程序,下列说法正确的是__________。#include<stdio.h>voidmain(){intx=3,a=3,b=3;if(x......