尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
JAVA练习330- 电话号码的字母组合
题目概览给定一个仅包含数字2-9的字符串返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下与电话按键相同。注意 1 不对应任何字母。示例 1输入digits 23输出[ad,ae,af,bd,be,bf,cd,ce,cf]示例 2输入digits 2输出[a,b,c]提示1 digits.length 4digits[i]是范围[2, 9]的一个数字。来源17. 电话号码的字母组合 - 力扣LeetCode解题分析方法回溯先用一个哈希表存储数字和字符串的映射。令当前数字的索引为 i用集合存储之前拼过的字符前缀 prefix每次递归我们遍历 i 位置的数字对应的字符串将当前字符存入 prefix 中然后继续递归遍历 i 1 的数字直到 i n - 1这样得的 prefix 就是结果之一递归完成后回溯到上一层将当前字符移除继续遍历下一个字符重复操作直到遍历完成。时间复杂度O(4^m * 3^n) ( m 为字符串长度为 4 的数字个数n为字符串长度为 3 的数字个数空间复杂度O(mn)class Solution { public static MapCharacter, String mapping new HashMap(); static { mapping.put(2, abc); mapping.put(3, def); mapping.put(4, ghi); mapping.put(5, jkl); mapping.put(6, mno); mapping.put(7, pqrs); mapping.put(8, tuv); mapping.put(9, wxyz); } public ListString letterCombinations(String digits) { ListString result new ArrayList(); backTracking(digits, result, 0, digits.length(), new StringBuffer()); return result; } public void backTracking(String digits, ListString result, int index, int n, StringBuffer prefix) { if (index n) { result.add(prefix.toString()); return; } String letters mapping.get(digits.charAt(index)); for (int i 0; i letters.length(); i) { prefix.append(letters.charAt(i)); backTracking(digits, result, index 1, n, prefix); prefix.deleteCharAt(index); } } }
RELATED

相关推荐

Cocos Creator 3D物理射线检测:从原理到实战的交互开发指南

Cocos Creator 3D物理射线检测:从原理到实战的交互开发指南

1. 项目概述:为什么3D物理射线检测是交互的基石在任何一个3D游戏或交互应用中,当玩家点击屏幕,试图选中一个远处的宝箱、与NPC对话,或者用准星瞄准敌人时,背后默默工作的核心技术,十有八九就是物理射线检测…

📅 2026/9/14 16:24:38
Godot状态机设计:从原理到实践解决2D平台游戏下落状态卡顿问题

Godot状态机设计:从原理到实践解决2D平台游戏下落状态卡顿问题

为什么你的角色在平台边缘总是"卡顿"?为什么跳跃动画和下落动画总是衔接不自然?如果你正在使用Godot开发2D平台游戏,那么状态机设计很可能是你游戏流畅度的关键瓶颈。 很多开发者以为状态机只是简单的if-else堆砌,但实…

📅 2026/9/12 3:00:50
DS90Ux92x FPD-Link III SerDes芯片I2S音频接口配置与调试全指南

DS90Ux92x FPD-Link III SerDes芯片I2S音频接口配置与调试全指南

1. 项目概述与核心价值在汽车座舱电子、高端显示屏驱动以及需要长距离、高带宽音视频信号传输的嵌入式系统中,工程师们常常面临一个经典难题:如何在有限的线缆和连接器资源下,同步传输高质量的视频和复杂的多通道音频信号?传统的方…

📅 2026/7/30 16:45:04
MORE NEWS

更多资讯

📰

llvm-project核心解析:掌握IR与Pass,构建自定义编译器生态

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

IsaacLab 安装总卡在 rsl-rl?3 种做法一步修好

IsaacLab 安装总卡在 rsl-rl?3 种做法一步修好 【免费下载链接】IsaacLab Unified framework for robot learning with multi-physics/renderer support 项目地址: https://gitcode.com/GitHub_Trending/is/IsaacLab 装机器人强化学习框架 IsaacLab 时&#…

📰

Obsidian 多端同步方案对比:从 WebDAV 到 Syncthing 的选型指南

用 Obsidian 做笔记,最让人头大的从来不是双链怎么建、插件怎么配,而是怎么让手机、平板、公司电脑和家里的电脑上的笔记库保持一致。我一开始天真地以为把 Vault 扔进某个云盘就行,结果真正多端同步起来才发现,这里面全是门道。为…

📰

Artificial Analysis 价目表:GLM 5.3 Flash 用 TaoToken 同一把 Key 核对

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

ADMM算法解析:分布式凸优化问题的核心解法

1. 问题背景与核心价值在分布式优化领域,可分离结构的线性约束凸优化问题是一类具有重要工程意义的数学模型。这类问题广泛存在于电力系统调度、多智能体协同控制、资源分配等场景中。其标准形式可以表述为:minimize f₁(x₁) f₂(x₂) ... f_N(x_N)s…

📰

LLaVA 在 Windows 上的安装与 16 位推理实战指南

LLaVA 在 Windows 上的安装与 16 位推理实战指南 【免费下载链接】LLaVA [NeurIPS23 Oral] Visual Instruction Tuning (LLaVA) built towards GPT-4V level capabilities and beyond. 项目地址: https://gitcode.com/gh_mirrors/ll/LLaVA LLaVA(Large Langu…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬