leetcode 17. Letter Combinations of a Phone Number

miRNA测序数据生信分析——第一讲,总结概述 这里的miRNA测序指转录水平的测序。这里每一个数据库都可以在线访问,但是如果要本地使用,都需要进行数据库文件下载,整理。 阅读详情

题目描述:
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”].
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.

讲道理一开始还没看懂,就是按照手机的数字键盘上面对应的字母,将数字串转换为可能的字母串。看了下面这个表就明白了。

1       2(abc)  3(def)
4(ghi)  5(jkl)  6(mno)
7(pqrs) 8(tuv)  9(wxyz)
*       0       #

应该不难想到可以用递归的方法一层一层循环的遍历。时间复杂度是O(n*m),以下是解答的方法:

class Solution {
private:
    vector<string> result;
public:
    vector<string> letterCombinations(string digits) {
        if (digits == "") {
            return result;
        }
        recursion(digits, 0, "");
        return result;
    }
    void recursion(string digits, int i,string now) { 

        string digitToletter[8] = { "abc", "def","ghi","jkl","mno","pqrs","tuv","wxyz"};

        int letterNum = 3;
        if (digits[i] == '7' || digits[i] == '9') {
            letterNum = 4;
        }
            for (int k = 0; k < letterNum; k++) {
                if (i == 0) {
                    now = "";
                }
                now = now + digitToletter[digits[i]-'2'][k];
                if (i == digits.length() - 1) {
                    result.push_back(now);
                }
                else {
                    recursion(digits, i + 1, now);
                }
                //这里的两次字符串长度减一是十分关键的,
                //这里是遍历完一个数字对应的一个字母后,字符串长度减一以便继续遍历
                now = now.substr(0, now.length() - 1);
            }
            //这里是遍历完一个数字对应的所有字母后,回到上一层的数字进行遍历
            now = now.substr(0, now.length() - 1);
        }

};
Open3D 曲率下采样 曲率下采样是一种基于几何特征的点云处理技术,通过计算每个点的曲率来判断其所在位置的局部表面特征,从而进行选择性保留。曲率的计算通常基于点的法向量和其邻域点的分布。 阅读详情

相关推荐

信道估计准则演进:从LS、MMSE到LMMSE的工程权衡

本文深入探讨了信道估计准则的演进历程,从LS、MMSE到LMMSE的工程权衡。通过对比分析三大经典算法的数学本质、工程实现及适用场景,揭示了在计算复杂度、实时性和性能之间的关键取舍。文章结合4G/5G基站项目实战经验,提供了算法选型的三维决策模型和前沿发展建议,为无线通信系统设计提供实用指导。

weixin_29327525的博客 281

LeetCode 17. Letter Combinations of a Phone Number 题解

本题是回溯算法的经典问题,主要考察对回溯思想的理解和应用。通过维护一个路径数组和索引,我们可以生成所有可能的字母组合。回溯算法的核心思想是:通过选择、递归、回溯的过程,遍历所有可能的解空间,找到符合条件的解。建立数字到字母的映射表,方便快速查找每个数字对应的字母。当处理完所有数字时,将当前组合添加到结果中。对于每个数字,遍历其对应的所有字母,递归生成组合。这种方法不仅适用于电话号码的字母组合问题,还可以应用于许多其他组合问题,例如排列问题、组合问题等。

cannonjinx的博客 4386

气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型

本文通过建立不同类型干旱传播过程的触发阈值模型,解析了在不同等级气象干旱胁迫下诱发次一级干旱类型的触发阈值。通过贝叶斯概率模型,我们推导了气象干旱与水文干旱、农业干旱、地下水干旱之间的条件概率关系,进一步明确了气象干旱引发水文干旱、农业干旱和地下水干旱的概率及其触发阈值。该模型有效揭示了气象干旱对各级干旱类型的传播机制及其动态变化,为干旱预警系统的建立和水资源管理提供了理论依据和技术支持。

frankgis的博客 2502

LeetCode算法题之17. Letter Combinations of a Phone Number(medium)

题目描述: Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) i...

DaMoWangZQ的博客 309

Rasa Core开发指南

文章目录1. Rasa Core简介1.1 Rasa Core消息处理流程1.2 安装Rasa Core2. Dialogue模型训练2.1 Story样本数据2.2 Domain2.2.0 intents2.2.1 actions2.2.2 templates2.2.3 entities2.2.4 slots3 .训练和使用对话模型3.1 训练对话模型3.2 使用对话模型4. 搭建CustomA...

老蒋也疯狂 1万+

2026华为OD机试(Python)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Python实现。

MISAYAONE的博客 29万+

LeetCode 力扣 17. 电话号码的字母组合 letter combinations of a phone number

大家觉得写还可以,可以点赞、收藏、关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录17. 电话号码的字母组合题目描述示例:说明:分析StringStringBuilder优化运行结果 17. 电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af

motongxue的博客 371

华为OD机试真题2026双机位C卷 Python&JS 实现【明日之星选举】

给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

MISAYAONE的博客 318

LeetCode 17. Letter Combinations of a Phone Number

题目描述(中等难度) 给一串数字,每个数可以代表数字键下的几个字母,返回这些数字下的字母的所有组成可能。 解法一 定义相乘 自己想了用迭代,用递归,都理不清楚,灵机一动,想出了这个算法。 把字符串 "23" 看成 ["a","b",c] * ["d","e","f"] ,而相乘就用两个 for 循环实现即可,看代码应该就明白了。 public List<String> letter...

wind_liang的博客 1080

C/C++ LMS算法详解及源码

LMS(Least Mean Squares)算法是一种自适应滤波器算法,用于估计一个系统的参数,以使输出信号与期望信号之间的均方误差最小化。LMS算法通过使用梯度下降的方法,逐步调整自适应滤波器的权值来优化滤波效果。

希望我的博客,能帮上你解决学习中工作中所遇到的问题 3276

第 0 篇|开篇:为什么我们要从 RNN 讲到 Transformer?

本文介绍了NLP模型的发展历程,从早期规则式方法到如今Transformer模型的演进脉络。文章强调理解NLP技术需要从基础模型入手,重点分析了传统机器学习的局限性(无法处理变长有序输入和深层语义关联),以及RNN如何通过循环结构首次实现顺序依赖捕捉。作者指出Transformer之所以成为主流,是因为它通过自注意力机制解决了RNN的核心痛点(低效串行处理和长距离依赖问题)。专栏将采用"从问题到解决方案"的讲解方式,帮助读者建立完整的NLP知识体系,避免孤立学习和盲目追新。全文旨在为初学

记录 IT 领域经验与见解的博客 73

Leetcode17. Letter Combinations of a Phone Number

Leetcode17. Letter Combinations of a Phone Number 写在前头:本人C++功底比较差,拿leetcode练C++,大佬莫笑。 输入2-9,返回所有可能的字符串 递归和迭代 这个题里面,迭代就像树的层次遍历,一行一行的出,出一个,把它子节点全push进来,直到最后一行为止全是子节点,ok了 先找[“a”“b”“c”] 递归的思想类似深度遍历,一直往下...

这里只有黑里 167

基于BERTopic模型的英文20新闻数据集主题聚类及可视化

BERTopic是基于深度学习的一种主题建模方法。BERT是一种用于NLP的预训练策略,它成功地利用了句子的深层语义信息。

Cachel Wood的博客 1460

[Java]LeetCode17 Letter Combinations of a Phone Number

[Java]LeetCode17 Letter Combinations of a Phone Number

fumier的专栏 1276

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【DFS】LeetCode 17. Letter Combinations of a Phone Number

LeetCode 17. Letter Combinations of a Phone Number Solution1:我的答案 利用8皇后同样的方法,回溯+递归 class Solution { public: vector&amp;amp;amp;amp;amp;amp;lt;string&amp;amp;amp;amp;amp;amp;gt; letterCombinations(string digits) { if (digits.size()

Allenlzcoder的博客 294

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【LeetCode】17.Letter Combinations of a Phone Number(medium)

【LeetCode】17.Letter Combinations of a Phone Number(medium)解题报告 题目地址:https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/ 题目描述:   Given a digit string, return all poss

郝春雨的博客 306

Leetcode 17 Letter Combinations of a Phone Number

题意为输出所有按键可能表示的字母组合。 因为不知道按键组合有多长,所以可以用搜索来做, 为了效率我用的是BFS,不过好像也没快到哪里去。 先打印出字典表,用队列进行搜索,算法的复杂度最优就行了,不必在意常数项的问题。

无名山丘,崛起成峰 4380

Leetcode 17. Letter Combinations of a Phone Number

https://leetcode.com/problems/letter-combinations-of-a-phone-number/ class Solution { public: string mapping[8]={"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; void get_string(string &amp...

weixin_34005042的博客 171

【Leetcode】17. Letter Combinations of a Phone Number

题目地址: https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 给定一个由数字组成的字符串,返回其在电话号码盘上代表的所有字符串。很经典的DFS题,要遵循做当前的选择,枚举下一个选择,撤销当前的选择,这样的步骤。同时注意一下枚举结束的条件。此问题枚举结束当且仅当枚举到digits最后一位。代码如下: import...

数学、算法爱好者的博客 253

[LeetCode 17] Letter Combinations of a Phone Number

题目链接:letter-combinations-of-a-phone-number import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Given a digit string, return all possible letter combinations tha

瓦尔登湖 909

17. Letter Combinations of a Phone Number Leetcode Python

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. Inpu

hyperbolechi的专栏 2062

[LeetCode] 17. Letter Combinations of a Phone Number

Letter Combinations of a Phone Number Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. A mapping of digit to letters (just ...

Peng_maple的博客 325

leetcode 17. Letter Combinations of a Phone Number【回溯】

电话号码字母组合 leetcode 17. Letter Combinations of a Phone Number

星辰不问 348
上一篇: git&github 使用git将本地项目push到github
下一篇: leetcode399 Evaluate Division
wenkun97
博客等级 码龄10年 15粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值