leetcode刷题-[17]电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 解题思路: 我想的是按照树的dfs做,不知道怎么动手 打开评论区,先做出来再理解吧。 本题是一个电话号码组合的问题,或者说是一个 阅读详情

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

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

img

示例 1:

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

示例 2:

输入:digits = ""
输出:[]

示例 3:

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

思路

题目中说的是组合,可以采用回溯法的方法来解答,但是有一些变种

  • 需要维护一个map来保存0 - 9的字符床

  • 维护一个start指针,代表当前搜索的字符

    • select_list = map.get(str.charAt(start));

      回溯的时候 因为手机的一个按键只能按一次,但是会出现3种情况,接着就是下一个按键(可重复)

  • 回溯的结束条件为start >= str.length

关键代码

public List<String> letterCombinations(String digits) {
  List<String> resultList = new ArrayList<>();
  if (digits == null || digits.length() == 0) {
    return resultList;
  }
  Map<Character, String> map = new HashMap<>();
  map.put('2', "abc");
  map.put('3', "def");
  map.put('4', "ghi");
  map.put('5', "jkl");
  map.put('6', "mno");
  map.put('7', "pqrs");
  map.put('8', "tuv");
  map.put('9', "wxyz");

  // 选择列表
  StringBuilder sb = new StringBuilder();
  int start = 0;
  trackBackFunction(digits, resultList, start, sb, map);
  return resultList;
}

private void trackBackFunction(String digits, List<String> resultList, int start, StringBuilder sb, Map<Character, String> map) {
  if (start == digits.length()) {
    resultList.add(sb.toString());
    return;
  }

  String selectList = map.get(digits.charAt(start));

  for (int i = 0; i < selectList.length(); i++) {
    sb.append(selectList.charAt(i));
    // 需要注意的是这里需要start + 1或者 ++start, 而不能用start++
    trackBackFunction(digits, resultList, start + 1, sb, map);
    sb.deleteCharAt(sb.length() - 1);
  }
}
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 思路:利用回溯法,找到第一个数字,对应的字符串,然后依次遍历,并且递归调用回溯方法。 class Solutio... 阅读详情

相关推荐

在摩尔线程 MTT S80 上使用 Ollama 进行 DeepSeek R1 蒸馏版模型推理

本文主要介绍了如何在摩尔线程 MTT S80 上通过 Ollama 快速完成DeepSeek R1 蒸馏系列模型的推理。

摩尔线程blog中心 3599

【LeetCode】-- 17.电话号码的字母组合

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

局部变量和全局变量 957

MCU工程迁移实战:从STM32到MSPM0L1306的完整指南

在嵌入式系统开发中,MCU工程迁移是开发者常面临的核心挑战,涉及从旧平台向新芯片的完整适配。其原理在于不同MCU在硬件架构、外设寄存器映射、时钟树及开发工具链上存在差异,迁移的本质是将应用逻辑与底层硬件实现解耦。这一过程的技术价值在于提升代码复用性、降低硬件切换成本,并确保产品能快速响应供应链或技术栈变化。典型应用场景包括产品升级换代、芯片缺货替代以及技术生态统一。本文以TI MSPM0L1306为例,详解如何通过对比清单分析、DriverLib API替换及分步调试,高效完成从STM32等平台到Arm C

weixin_27625589的博客 330

算法---给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合

题目 给定一个仅包含数字 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.l

男儿不展风云志,空有天生八尺躯 4780

KEPServerEX 6 之 GE Ethernet 连接FANUC ROBOT机器人实战

GE Fanuc是GE公司控制系统部门的一部分,成立于1998年。其主要业务涵盖工业自动化、控制系统、PLC和组态软件等领域。其产品可用于包括自动化、过程自动化、国防、汽车制造、通讯、医疗和航空航天等各种工业领域2009 8月 GE和FANUC今天宣布两家公司已同意解除合资企业GE FANUC自动化公司。通过以上历史,GE Ethernet Driver 当下还支持对接FANUC ROBOT机器人 就不奇怪了。

-雲飛兄-博客 1791

IoT安全软件:Forescout二次开发_Forescout基础架构与原理

Forescout平台是一个集成了多种安全功能的综合解决方案,旨在帮助组织管理和保护其网络中的IoT设备。该平台通过自动发现、分类和监控网络中的设备,提供实时的安全可见性和控制。Forescout的核心优势在于其能够处理混合环境中的各种设备,包括传统IT设备、IoT设备和OT设备。Forescout平台由多个核心组件组成,每个组件负责特定的功能。了解这些组件的运作机制是进行二次开发的基础。假设我们需要定义一个策略,禁止所有厂商为XYZ的设备访问互联网。选择策略类型。

chenlz2007的博客 1965

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。。。。

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 来源:力扣(LeetCode) ...

LPL0129的博客 7062

概率的接力:拆解大模型“预测下一个词“的底层逻辑

大模型的智能不在于它拥有了意识,而在于它用纯数学的架构,将人类语言的复杂结构压缩为可计算的向量轨迹与概率接力。当我们不再将其拟人化为"思考者",而是视作高维条件概率引擎时,才能真正驾驭它。预测下一个词,从来不是终点,而是起点。未来的核心竞争力,属于那些能洞察其统计本质、善用其模式生成能力,并以人类理性与事实为锚点的协作者。词元的轨迹终会止步于上下文窗口,但对技术底层的清醒认知,才是跨越幻觉、走向真实智能的基石。

AI浩 330

LeetCode(必刷75题)17.电话号码的字母组合——回溯

回溯

xiangguang_fight的博客 353

以阿克曼转向车为例对URDF和XACRO文件进行解读

   最近我在古月学院购买了在Gazebo中实现阿克曼转向车的仿真课程,课程资料的阿克曼小车的XACRO文件在Gazebo里加载的时候报了三个错误,在这之前,我没接触过URDF或XACRO文件,本篇文章就以这个阿克曼小车的XACRO文件为例,对URDF或XACRO文件的格式和内容进行解读,期望经过解读和学习,找到错误原因及所在,并解决这三个错误    先来放一下上面右图所示的模型的完整的XACRO文件: <?xml version="1.0"?> <!-- racecar.urdf.x

慕羽★的博客 3701

Buck电源设计常见的一些问题(一)半桥栅极驱动芯片共性失效问题

半桥驱动芯片主要用在器件可应用于电信,数据通信,便携式存储或更低电压系统中的电源转换器,半桥、全桥、推挽、同步降压,正激变换器和同步整流器等方面。当然难免会遇到不少问题。基本上我们在产品开发的过程中都遇到过栅极驱动芯片坏掉的情况,所以找了一些资料,学习学习。也查找查找原因。

小幽余生不加糖 2369

LeetCode刷题笔记 17 电话号码的字母组合

题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/pr...

LoveMyTail的博客 366

Open3D点云数据处理(二):读写点云,你真的会吗?

本文详细介绍了open3d加载点云、保存点云的方法,同时打印点云坐标、颜色、法向量等字段信息。

孙悟空 2604

LeetCode刷题记录——17电话号码的字母组合

LeetCode刷题记录——17电话号码的字母组合 一 题目描述: 给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下。注意1不对应任何字母 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 二 思路: 递归遍历: 如图从最底层开始,然后逐层往上进行递归...

qq_42611498的博客 294

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode刷题之17.电话号码的字母组合

LeetCode刷题之17.电话号码的字母组合 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "a...

胡萝卜 188

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[JavaScript 刷题] 搜索 - 电话号码的字母组合, leetcode 17

[JavaScript 刷题] 搜索 - 电话号码的字母组合, leetcode 17 github repo 地址: https://github.com/GoldenaArcher/js_leetcode,Github 的目录 大概 会更新的更勤快一些。 题目地址:17. Letter Combinations of a Phone Number 题目 如下: Given a string containing digits from 2-9 inclusive, return all possibl

GoldenaArcher的博客 583

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

力扣刷题之17.电话号码的字母组合

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

Yyaduo的博客 887

LeetCode刷题笔记—17.电话号码的字母组合

No17:电话号码的字母组合题目思路代码 题目 LeetCode17 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 思路 没什么好说的,直接dfs即可,需要注意的是,这里对数字的顺序不做要求,即:“ab” 和 “ba” 是同一个答案,因此我们不需要使用 hasUsed 标识路径,直接

素年恋锦事的博客 472

Leetcode刷题java之17. 电话号码的字母组合

参考回溯法框架: https://blog.youkuaiyun.com/qq_41901915/article/details/104113330 执行结果: 通过 显示详情 执行用时 :1 ms, 在所有 Java 提交中击败了93.76% 的用户 内存消耗 :36.2 MB, 在所有 Java 提交中击败了17.10%的用户 题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示...

逆水行舟,不进则退 513

LeetCode刷题笔记第17题:电话号码的字母组合

其中n为digits的长度。,回溯时函数递归的深度。

qq_29787929的博客 451

LeetCode刷题笔记 17. 电话号码的字母组合

题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 总结 这种类似排列组合的东西用回溯 Sample & Demo Code class Soluti...

XIIV13的博客 311

Leetcode刷题-17:电话号码的字母组合

解题思路1.题目描述:2.题目分析2.1 回溯法2.2 队列3.题目解答 1.题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例1: 输入:digits = “23” 输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”] 示例2: 输入:digits = “2” 输出:[“a”,“b”,“c”] 来源:力扣(LeetCod

ITSOK_123的博客 533

力扣刷题17. 电话号码的字母组合

定义变量index,用来记录当前访问第几个字符用来匹对,定义StringBuilder用来拼接字符串,定义返回集合List,定义map集合,用来映射数字和字母的关系。先获得数字对应的字符串,然后遍历这个字符串,加入sb中,然后进行递归,递归时下标变量index++。在dfs函数中,如果sb的长度等于字符串digits的长度,则放入list中,并且return。回溯时,index--,并且删除sb中最后的字符。这一道题需要一个定义几个全局变量。

2403_83306207的博客 201

【Leetcode刷题篇】leetcode17 电话号码的字母组合

题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 解题思路:回溯的解法 回溯法的模板: backtracking(){ if(终止条件){ 存放结果; } for(枚举同一个位置的所有可能性,可以想成节点孩子的数量){ .

Mind_programmonkey的博客 429

leetCode刷题 & 17. 电话号码的字母组合

请不要在评论区发表题解!

weixin_42378614的博客 1754

Leetcode刷题笔记 17. 电话号码的字母组合

17. 电话号码的字母组合 时间:2020年8月26日 知识点:dfs、回溯 题目链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/ 题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 输入: “23” 输出: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “

cjl的博客 333
上一篇: leetcode刷题-[15]三数之和
下一篇: leetcode刷题-[19]删除链表的倒数第 N 个结点
俩只猴
博客等级 码龄12年 11粉丝 35原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值