17. 电话号码的字母组合

Java实现 LeetCode 17 电话号码的字母组合 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/p... 阅读详情
/**
 * 17. 电话号码的字母组合
 * @author wsq
 * @date 2020/09/24
	 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
	给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

	示例:
	输入:"23"
	输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
	
	说明:
	尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。
	
	链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number
 */
package notsubmit.huishuo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class LetterCombinations {
	private List<String> ans = new ArrayList<String>();
	@SuppressWarnings("unchecked")
	private static Map<Character, String> letterMap = new HashMap(){
		{
			put('2', "abc");
			put('3', "def");
			put('4', "ghi");
			put('5', "jkl");
			put('6', "mno");
			put('7', "pqrs");
			put('8', "tuv");
			put('9', "wxyz");			
		}
	};
	/**
	* 当遇到这种一对多的问题,我们应该想到树形结构,该问题类似从树的根节点到叶子节点所有的路径
	* 要将树形结构用到实际问题中去
	* 回溯思想与递归实现的运用
	*/
    public List<String> letterCombinations(String digits) {
    	if(digits.length() == 0) {
    		return ans;
    	}
    	StringBuilder sb = new StringBuilder();
    	genLetterStr(digits, 0, sb);
    	return ans;
    }
    
	private void genLetterStr(String digits, int i, StringBuilder sb) {
		// TODO Auto-generated method stub
		if(i == digits.length()) {
			ans.add(sb.toString());
			return;
		}
		char c = digits.charAt(i);
		String letters = letterMap.get(c);
		for(char tmpC: letters.toCharArray()) {
			sb.append(tmpC);
			genLetterStr(digits, i+1, sb);
			sb.deleteCharAt(sb.length() - 1);
		}
	}
	public static void main(String[] args) {
		String s = "23";
		LetterCombinations lc = new LetterCombinations();
		List<String> ans = lc.letterCombinations(s);
		for(String ss: ans) {
			System.out.println(ss);
		}
	}
}

EVE-NG 新增 qcow2 镜像教程 本文介绍了如何在 EVE-NG 网络仿真平台中添加 QCOW2 镜像并配置 YML 文件。首先,用户需要了解 EVE-NG 的目录结构,上传并重命名 QCOW2 镜像,然后设置文件权限并刷新界面以识别设备。接着,讲解了 YML 文件的作用,它用于定义设备的CPU、内存、网卡等参数,并给出了配置示例。若有多个设备版本,可以通过复制并重命名 YML 文件使其独立显示。最后,通过检查 QEMU 进程和日志验证 YML 配置是否生效。总结部分强调了 EVE-NG 的自动识别机制以及独立管理设备版本的方式。 阅读详情

相关推荐

i春秋第二届春秋欢乐赛 classical writeup

i春秋第二届春秋欢乐赛 classical writeup 第一步:题目给出的提示 根据题目我们可以了解这道题应该是一个古典密码的题目,但是古典密码太多了我们如何知道是什么? 看题目给出的附件是一个很长很长的乱序字符串,我们可以想到用词频分析一下: 发现里面有一段不一样的信息:LyjtL3fvnSRlo2xvKIjrK2ximSHkJ3ZhJ2Hto3x9 像是base64解码能够做出来,但是发现...

hanjinrui15的博客 1430

Leetcode17 电话号码的字母组合

Leetcode17 电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 解题思路 首先使用哈希表存储每个数字对应的所有可能的字母,然后进行回溯操作。 回溯过程中维护一个字符串,表示已有的字母排列(如果未遍历完电话号码的所有数字,则已有的字母排列是

weixin_41908867的博客 293

电脑版微信多开,最详细教程没有之一

首先桌面任意的位置右键新建文本文档输入如下代码: TASKKILL /F/IM WECHAT.EXE start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" ...

大超子 4391

17、电话号码的字母组合-cangjie

这个程序的核心思路是利用递归逐层构建字母组合,直到遍历完所有数字的可能字母。通过使用回溯方法(DFS),实现了对于所有可行组合的探索和累积。指向的是同一个引用,导致所有的array都变成了最后一次修改的结果。2、试了下append©,比insert(size, c)好用多了。目前是放弃了array,已老实用ArrayList。(其中 n 是输入字符串的长度)(用于递归栈和存储结果)倒是没报错,但是跑出来不对。1、array初始化问题。

qq_35085273的博客 1579

PX4从放弃到精通(二十八):垂起过渡控制

固件版本:1.14.0可加名片交流学习。

超维空间科技的博客 2874

使用VNA(Vector Network Analyzer)对S参数进行去嵌(一)

传统上,RF和微波组件被设计成具有同轴接口的封装。通过连接一系列这些单独的同轴设备,可以容易地制造复杂的系统。使用使用类似同轴接口的标准测试设备可以很容易地测量这些部件和系统的性能。然而,现代系统需要更高水平的组件集成、更低的功耗和更低的制造成本。射频组件正在迅速从使用昂贵同轴接口的设计转向使用印刷电路板和表面贴装技术(SMT)的设计。传统的同轴接口甚至可以从最终产品中取消。这就给设计者留下了用需要同轴接口的测试设备测量这些射频和微波组件性能的问题。解决方案是使用连接同轴和非同轴传输线的测试夹具。

小孟同学的博客 1万+

Leetcode 17. 电话号码的字母组合

Leetcode 17. 电话号码的字母组合1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/   本质上就是一个深搜问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace

珍惜 8908

使用 Visual Studio Code 连接 ABAP On-Premise 系统做开发的详细配置步骤

本文详细介绍了如何在Visual Studio Code中通过ABAP Development Tools扩展连接ABAP On-Premise系统。关键步骤包括:通过Ctrl+Shift+P打开命令行面板选择「ABAP: New Destination...」创建RFC连接(仅支持SSO单点登录),选择本地SAPGUI中已有的系统,输入Client ID、语言和用户名(无需密码),最后将目标系统添加到工作区即可开始开发。文章强调了企业安全考虑下仅支持SSO的设计理念,并展示了连接配置的JSON格式示例。整

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 997

leetcode 17.电话号码的字母组合

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

EngineerHe的博客 1115

华为OD机试 - 统计文本数量(Java 2025 A卷 100分)

华为OD机试 2025A卷题库疯狂收录中,刷题。

学Java,找哪吒 1438

微信小程序 - 实现仿小红书轮播图组件功能,类似小红书笔记页面图片展示播放效果,微信小程序仿小红书幻灯片轮播支持视频播放、图片预览,自动适应图片或视频大小可左右滑动切换(小程序精美轮播图,丝滑切换)

微信小程序,轮播图组件,微信小程序仿小红书轮播图,小红书轮播图仿造,微信小程序轮播图,微信小程序幻灯片,微信小程序高仿小红书轮播图实现,小程序实现类似小红书一样的轮播图组件,轮播图插件,精致轮播图,精美丝滑流畅切换的轮播图,轮播图组件,小红薯轮播图,关于小红书的小程序不同数量的轮播图,展示不一样的轮播指示点的实现,微信小程序仿小红书图片轮播,开发微信小程序模仿小红书,高仿小红书Banner的指示器,小红书小程序笔记详情轮播图指示点的随图片数量的变化动态变化,微信小程序swiper轮播图,js轮播图,html

✅ 精选推荐文章 6933

LeetCode 17 电话号码的字母组合(递归)

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

Ailecccc的博客 217

使用MCAL的Fee模块集成ETAS存储协议栈

由于ETAS Fee模块导致初始化时间较长,且集成占用的内存较大,所以最终考虑使用MCAL中的Fee模块来集成ETAS的Nvm模块,本文介绍具体的集成方法注意:本文所涉及的集成前提是原有的ETAS协议栈已正常使用使用IFX Fee需要手动配置Fee,可能有出错的风险,最好是利用脚本自动生成代码来实现。另外,需要注意IFX的Fee中block数据没有CRC校验,如果使用该Fee,建议Nvm中加CRC校验(ETAS Fee中block自带CRC,可以不需要Nvm Crc),防止数据被意外篡改导致的异常。

赞的博客 406

力扣——17电话号码的字母组合

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。17. 电话号码的字母组合 - 力扣(LeetCode)的字符串,返回所有它能表示的字母组合。

2301_77433167的博客 1106

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IDEA的使用指南

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

LeetCode 热题 第17题 电话号码的字母组合

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

uifmlj的博客 1471

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

题目要求根据电话号码数字(2-9)生成所有可能的字母组合。采用回溯算法,通过递归枚举每个数字对应的字母,逐步构建组合。时间复杂度为O(4^n),空间复杂度O(n)。关键步骤包括:数字-字母映射、递归回溯生成组合、处理边界情况(如空输入)。示例输入"23"输出["ad","ae","af","bd","be","bf","cd","ce&qu

qq_32019341的博客 1599

VB摄像头监控

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

【LeetCode每日一题】——17.电话号码的字母组合

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

IronmanJay 1490

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

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

pureszgd的博客 403

leetcode17 电话号码的字母组合

leetcode17 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 答题思路: 可以认为是广度优先的搜索思路,例如针对于“23”这样的输入: 首先考虑2对应的三种情况即:a,b,c

weixin_43550014的博客 144

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

题目:17. 电话号码的字母组合 难度:中等 分类:字符串 解决方案:字符串遍历 今天我们学习第17题电话号码的字母组合,这是一道中等题。像这样字符串的题目经常作为面试题来考察面试者算法能力和写代码能力,因此最好能手写出该题。下面我们看看这道题的题目描述。 题目描述 给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字...

jacob2359的博客 394

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

LeetCode.17 电话号码的字母组合,回溯解法。

weixin_43599456的博客 835

LeetCode17. 电话号码的字母组合

LeetCode17. 电话号码的字母组合 dfs回溯 class Solution { public: //时间o(4^n), 空间O(4^n + n)(n为digits.length()) vector<string> letterCombinations(string digits) { if(digits.length() == 0) return vector<string>(); vector<vector<char&

oykotxuyang的博客 146

leetcode 17 电话号码的字母组合

题目 leetcode 17 电话号码的字母组合 分析 定义: 输入的 string digits 为节点组成的 char数据 解空间: 2~9键中的字母 终止条件: 路径的长度 == 节点数组的长度 解的判断条件: 终止条件就是解条件 不需要减枝 code class Solution { void backtrace(const string& digits,vector&...

weixin_41964962的博客 177

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

【LeetCode-17】电话号码的字母组合,今天我们将探讨一个经典的回溯算法问题——电话号码的字母组合。通过详细的解题思路、完整的 Java 代码实现以及案例执行过程分析,我们将一步步揭开这个问题的奥秘。

qq_44530108的博客 732
上一篇: 501. 二叉搜索树中的众数
下一篇: 6. Z 字形变换
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值