017.电话号码的字母组合——技术派-二哥的 LeetCode 刷题笔记
题意
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

难度
中等
示例
输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
输入:digits = ""
输出:[]
输入:digits = "2"
输出:["a","b","c"]
分析 1
这道题对于新手来说,可能第一时间会比较难消化,但耐着性子思考一下,思路就很清晰了。
比如说 2 对应的是 abc,3 对应的是 def,那么 23 对应的就是 ad、ae、af、bd、be、bf、cd、ce、cf。
也就是一个排列组合。
那我们的思路如下:
①、建立一个数字到字母的映射,比如 2 对应的是 abc,3 对应的是 def,我们用数组来就可以。
// 数字到字母的映射
String[] mapping = {"0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
0 和 1 属于占位符,没有对应的字母,因为输入的字符串只包含 2-9 的数字。
②、建立一个队列,我们用LinkedList来实现,初始时队列中只有一个空字符串。
LinkedList combinations = new LinkedList<>();
combinations.add(""); // 初始添加一个空字符串到队列中
空字符串是为了方便后续的处理...
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复