当前位置: 首页 > news >正文

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 <= 4
  • digits[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(m+n)

class Solution { public static Map<Character, 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 List<String> letterCombinations(String digits) { List<String> result = new ArrayList<>(); backTracking(digits, result, 0, digits.length(), new StringBuffer()); return result; } public void backTracking(String digits, List<String> 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); } } }
http://www.jsqmd.com/news/1253358/

相关文章:

  • GELab-Zero:4B参数端侧多模态GUI Agent开源方案解析
  • 多智能体系统协作机制:从状态同步到冲突解决的技术实践
  • Ollama本地大模型部署与DeepSeek实战指南
  • 石家庄市全域黄金回收指南:六家靠谱门店盘点,闲置变现不踩坑 - 新芸鼎珠宝首饰
  • 离线AI系统核心技术解析与实战指南
  • Agentic AI自主决策风险与防御架构设计
  • ADCS9888芯片实战:模拟视频信号数字转换的设计与调试指南
  • Unity动画事件进阶:构建精准时序控制与解耦的事件系统
  • 权威发布:2026年7月萧邦最新售后网点地址与福州客服热线 - 萧邦中国官方服务中心
  • OpenClaw 2026.4版本:安全硬化与多模态AI的突破
  • Python从入门到实战(十八):协程与异步编程
  • JAVA练习331- 组合总和
  • go 整数的默认值0不传也是查询的解决方法
  • 高价回收黄金防坑指南,广州各区实体店铺地址罗列,出门变现先收藏 - 奢侈品回收评测
  • 人工智能大模型技术解析与实战指南
  • 上门取件旧衣服回收:2026年最高0.8元/公斤,爱宝拉一键预约包邮免费上门 - 快递物流资讯
  • LM93硬件监控芯片寄存器解析与SMBus通信实战指南
  • 深入解析MSP430 MPY32硬件乘法器:原理、模式与嵌入式DSP实战
  • 前端输入框焦点管理:解决回车键失焦的实战方案
  • 苏州长期零申报企业如何降低税务预警风险?
  • 精密时钟调理器设计:从PLL原理到PCB布局的工程实践
  • C++ Lambda表达式:从核心语法到现代编程实战全解析
  • 大模型后训练方法论:从原理到实践的SOLID框架
  • 智能诊断技术MSO算法:VMD-CNN-BiLSTM在工业预测性维护中的应用
  • C++实现ADFGX密码破解:模拟退火算法与古典密码分析实战
  • 告别数字囤积:从网盘收藏到高效知识管理的实用指南
  • 基于普通摄像头的人体无感定位技术解析
  • 空间智能交互框架:解决跨平台设备通信与协议适配难题
  • 离线AI核心技术解析与工业部署实战
  • AI论文写作工具实测:9款神器提升学术效率