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); } } }

相关新闻

最新新闻

Go select深度解析:多路复用、超时控制与避坑指南

Go select深度解析:多路复用、超时控制与避坑指南

最近在给一个消息网关做多路数据汇聚,功能不算复杂,但头几天代码写得很别扭:同时要监听两个上游服务的响应 channel、一个定时刷新信号,还有一个程序退出信号。我用 for 循环套 goroutine 硬凑,跑起来倒是能跑&#xf…

2026/9/9 8:01:31
基于聊天软件的私人AI助理:会话搜索与云端协作实战

基于聊天软件的私人AI助理:会话搜索与云端协作实战

1. 从"记不住话的机器人"到"住进聊天软件的私人助理"上个月,我把自己的私人AI助理项目更新到了2.0版,核心是两个能力:会话搜索和云端协作。这个项目是开源的,做的事情其实很简单——让一个基于大模型API的AI助…

2026/9/9 8:01:31
Spring @Configuration 从原理到实战:CGLIB代理与避坑指南

Spring @Configuration 从原理到实战:CGLIB代理与避坑指南

我自己的开源项目被同事在代码评审里一顿追问之后,我才意识到很多天天用Spring的人,对Configuration的理解其实停留在“加个注解就能用”的层面。准确说,是在Spring里待了多年、能熟练写Bean方法的人,也未必说得清为什么Configura…

2026/9/9 8:01:31
从领域文档到可量化知识库评测:Easy Dataset 实战指南

从领域文档到可量化知识库评测:Easy Dataset 实战指南

做知识库评测这件事,最尴尬的往往不是模型答得不好,而是你压根说不清它“哪里不好”。我们团队维护的企业知识库上线三个月,每次被问“效果怎么样”,只能翻出几个截图,回一句“还行,大部分都能答”。直到我…

2026/9/9 8:01:31
shared_ptr 引用计数原理详解:从控制块到线程安全的完整剖析

shared_ptr 引用计数原理详解:从控制块到线程安全的完整剖析

1. 引言:为什么 C 需要 shared_ptrC 以强大的性能和极致的资源控制能力著称,但长期以来,手动内存管理带来的「悬挂指针」「重复释放」「内存泄漏」三大灾难,一直是大型 C 项目中最令人头疼的问题。一个对象可能被多个模块、多个线…

2026/9/9 8:01:31
CUHK02数据集与7z压缩包:Linux解压全攻略

CUHK02数据集与7z压缩包:Linux解压全攻略

简介:CUHK02数据集是一份供人脸识别研究使用的公开数据资源,面向计算机视觉研究者、算法工程师与相关专业学生,可用于跨视角人脸识别、非理想光照与低分辨率场景下的模型训练和算法验证。压缩包共7270个文件,其中7264张PNG人脸图像…

2026/9/9 7:56:30