Leetcode NO.17 Letter Combinations Of_A_Phone Number 电话号码的字母组合

【机器学习与数据挖掘实战 | 医疗】案例18:基于Apriori算法的中医证型关联规则分析 本案例针对三阴乳腺癌患者,经问卷调查收集数据并筛选处理形成原数据,经清洗、特征选择与变换后,构建Apriori模型,基于业务理解与建模结果,分析患者症状与中医证型关联,并据症状给出建议 。 阅读详情

1.问题描述

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

2.测试用例

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

3.提示

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

4.代码

1.电话号码的字母组合-回溯
code
HashMap<String, String> phoneMap = new HashMap<String, String>() {
    {
        put("2", "abc");
        put("3", "def");
        put("4", "ghi");
        put("5", "jkl");
        put("6", "mno");
        put("7", "pqrs");
        put("8", "tuv");
        put("9", "wxyz");
    }
};

/**
     * 回溯
     * @param digits
     * @return
     */
public List<String> letterCombinations(String digits) {
    List<String> res = new ArrayList<>();
    StringBuffer solution = new StringBuffer();
    if ("".equals(digits)) {
        return res;
    }
    dfsLetterCombination(digits, res, solution, 0);
    return res;
}

private void dfsLetterCombination(String digits, List<String> res, StringBuffer solution, int i) {
    if (i >= digits.length()) {
        res.add(solution.toString());
    } else {
        String s = digits.charAt(i) + "";
        String str = phoneMap.get(s);
        for (int j = 0; j < str.length(); j++) {
            solution.append(str.charAt(j));
            dfsLetterCombination(digits, res, solution, i + 1);
            solution.deleteCharAt(i);
        }
    }
}
复杂度
* 时间复杂度:O(3^m * 4^n)
* 空间复杂度:O(m+n) 
《拉依达的嵌入式\驱动面试宝典》—计算机硬件篇(一) 《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选 阅读详情

相关推荐

wifi/BT芯片RTL8723DS驱动移植和测试之一wifi篇

本文主要介绍如何在stm32mp157中移植并测试芯片RTL8723DS的wifi功能。

汉尼拔勇闯天涯 8741

springboot返回按照首字母分组排序数据

需要实现的效果图如下: 一、实现思路 1、将数据list 进行排序Collections,排序后是按照汉字字母排序的。 2、循环找出26个字母,以字母为key,以list中相同首字母的数据为值(集合)。 二、开发准备 1、这里需要用到pinyin4j-2.5.0.jar这个汉字转拼音的jar包, 大家可点击下载我上传到优快云的jar包资源;pinyin4j-2.5.0.jar 2、将该jar包导入到maven项目中 1)在项目中新建lib文件,将jar包复制粘贴到该文件中 2)在

乐昊的博客 2492

git连接华为软件开发云

我用的是github客户端的git shell 连接。用git bash也可以github客户端下载地址:https://desktop.github.com/1.在华为软件开发云上创建代码仓库2.在本地创建密钥SSH密钥帮助文档公钥是代码托管服务(CodeHub)识别您的用户身份的一种认证方式,通过公钥,您可以将本地git项目与代码托管服务(CodeHub)建立联系, 然后您就可以很方便的将本地...

sigmeta的博客 2113

[Leetcode][python]Letter Combinations of a Phone Number/电话号码的字母组合

题目大意 输入手机键盘的数字,组合所有可能的字母。 解题思路 DFS深度优先 代码 class Solution(object): def letterCombinations(self, digits): """ :type digits: str :rtype: List[str] """ ...

蛮三刀酱 1192

Zynq UltraScale+ RFSoC实战:用XCZU49DR开发板实现雷达信号处理全流程

本文详细介绍了如何利用Xilinx Zynq UltraScale+ RFSoC系列中的XCZU49DR开发板,高效实现雷达信号处理全流程。文章深入剖析了该芯片集成的射频直采ADC/DAC、可编程逻辑与Arm多核处理器的异构计算优势,并通过实战案例展示了从环境搭建、硬件链路设计到软件优化的完整开发路径,为相控阵雷达等高性能应用提供了单芯片解决方案。

weixin_29291863的博客 578

【语音识别算法】深度学习语音识别算法与传统语音识别算法的区别、对比及联系

深度学习语音识别算法与传统语音识别算法在理论基础、实现方式、性能表现等方面存在显著区别,同时也有一些联系。下面将从几个方面详细比较这两种方法,并给出应用实例和代码示例。

weixin_51306394的博客 2567

SpringBoot开发常用注解

1. @SpringBootApplication 这里先单独拎出@SpringBootApplication 注解说一下,虽然我们一般不会主动去使用它。 这个注解是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。 @SpringBootApplication public class SpringSecurityJwtGuideApplication { public static void main(java.lang.String[] a...

happy_a_bin的博客 899

手把手教你分析解决Innovus DRC Violation 和Antenna Effect Violation

数字IC后端设计培训教程之手把手教你分析解决Innovus DRC Violation 和Antenna Effect Violation

weixin_37584728的博客 2937

LeetCode 17. Letter Combinations of a Phone Number 题解

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

cannonjinx的博客 4387

OpenClaw 与十几款国产 “龙虾” 智能体深度对比

详解介绍OpenClaw和各种类似国产“龙虾”智能体工具深度对比

program哲学 2349

【NVIDIA】Jetson Orin Nano系列:编译外部驱动(交叉编译和板上编译)

Orin Nano外部驱动的开发入门,以hello world为例。使用交叉编译和板上编译两种方法

郭老二 1734

【力扣Leetcode题解系列之0017— Letter Combinations of a Phone Number 电话号码的字母组合】

摘要: 本文探讨了电话号码字母组合问题的多种解法与实现。题目要求根据数字2-9的字符串生成电话键盘对应的所有字母组合。主要解法包括: 回溯法:通过递归尝试所有字母组合路径,完成组合后回溯,适用于穷举场景 递归法:类似回溯但更简洁,利用函数栈保存状态 内置函数法(Python):使用itertools.product计算笛卡尔积,代码最简洁 循环法:通过迭代拼接字符串,避免递归开销 文章提供了Python、Java和C++的实现代码,展示了不同语言下的解决方案。

youngerwang的博客 1057

MongoDB分布式事务实现:两阶段提交、日志复制与冲突解决

MongoDB分布式事务机制解析 本文深入剖析了MongoDB 4.0+版本的分布式事务实现原理,重点分析了其在跨文档/跨集合/跨分片场景下的数据一致性解决方案。核心内容包括: 底层机制:采用改进的两阶段提交协议,通过oplog日志复制实现无中心协调器的事务管理,结合WiredTiger存储引擎和锁机制保障ACID特性。 创新设计:将传统2PC的中心协调功能分散到Primary节点,利用oplog作为事务状态记录,实现自动故障恢复和60秒超时回滚机制。 性能优化:针对大事务、写冲突等常见问题,提出拆分微事务

数据知道的博客 1261

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

题目描述:   给定一个数字字符串,返回数字所有可能表示的字母组合。 下面给出数字到字母的映射(和电话号码一样)。   输入:数字字符串 "23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].   说明: 尽管上面的答

wanderlustLee的博客 2841

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

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

motongxue的博客 371

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Leetcode 17 Letter Combinations of a Phone Number

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

无名山丘,崛起成峰 4380

LeetCode | 0017. Letter Combinations of a Phone Number电话号码的字母组合【Python】

LeetCode 0017. Letter Combinations of a Phone Number电话号码的字母组合【Medium】【Python】【回溯】【DFS】【暴力】 Problem LeetCode Given a string containing digits from 2-9 inclusive, return all possible letter combinatio...

Wonz 659

leetcode第17题 Letter Combinations of a Phone Number(电话号码的字母组合)

比较简单,直接深搜+回溯就能够解决的问题。题目的大意是: 给定一个只包含2-9的字符串,按照手机按键的映射关系,将它转化为一个只包含a-z的字符串,输出这种所有可能的转换字符串。 数字到小写字母的映射关系可以表示如下: digits_chr_map = { '2': 'abc', '3': 'def', '4': 'ghi', '...

笔墨留年。 949

17. Letter Combinations of a Phone Number

1.描述 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 butt...

Prozzz777 557

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

LeetCode 17. 电话号码的字母组合(Letter Combinations of a Phone Number)

17. 电话号码的字母组合 17. 电话号码的字母组合(Letter Combinations of a Phone Number) 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd",...

墨1024 518

LeetCode—17.电话号码的字母组合(Letter Combinations of a Phone Number)——分析及代码(C++)

LeetCode—17.电话号码的字母组合[Letter Combinations of a Phone Number]——分析及代码[C++]一、题目二、分析及代码1. 队列存储中间字符串(1)思路(2)代码(3)结果三、其他 一、题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"2...

江南土豆的博客 512

Letter Combinations of a Phone Number (电话号码字母组合) 【leetcode】

题目: 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. 题意就

Havenoidea 的专栏 3531

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

Leetcode 17. Letter Combinations of a Phone Number 电话号码的字母组合 标签: Leetcode 题目地址:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/ 题目描述 给定一个仅包含数字&nbsp;2-9&nbsp;的字符串,返回所有它能表示的字母组合。...

CoderWangSon 330

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

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

星辰不问 348
上一篇: Leetcode NO.46 Permutations 全排列
下一篇: Leetcode NO.297 Serialize And Deserialize Binary Tree
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值