Hot100:电话号码的字母组合(Letter Combinations of a Phone Number)固定层数 DFS ACERS 解析
副标题 / 摘要 这题表面上像字符串题,实质上是一个非常标准的固定层数回溯模型:第 k 层只处理第 k 个数字,从其映射字母里选一个,直到路径长度等于输入长度。 预计阅读时长:10~12 分钟 标签:Hot100、回溯、字符串、DFS SEO 关键词:Letter Combinations of a Phone Number, 电话号码的字母组合, 回溯, DFS 元描述:用 LeetCode 17 建立固定层数 DFS 模板,理解字符映射、路径长度终止与多语言实现。 目标读者 已经掌握 78 / 46,准备看另一类回溯树形态的学习者 想把“每层处理一个位置”这种 DFS 模型固定下来的开发者 需要做编码扩展、短串生成、候选串组合的工程师 背景 / 动机 这题和子集、排列都不太一样。 子集题:每层决定“要不要继续选后面的元素” 排列题:每层决定“当前位置放哪个未使用元素” 本题:每层对应一个固定数字位置,只能从该数字映射的字母中选一个 因此它非常适合训练“固定深度 DFS”: 递归层数由输入长度决定 每一层的候选集由当前字符直接决定 路径长度等于输入长度时结束 这类模型在字典枚举、编码扩展、模板字符串生成中很常见。 核心概念 数字映射表:2 -> abc, 3 -> def, …, 9 -> wxyz 固定层数 DFS:第 index 层只处理 digits[index] 叶子条件:index == len(digits) 时得到一个完整答案 路径构建:每层向路径追加一个字符,返回时撤销 A — Algorithm(题目与算法) 题目还原 给定一个仅由数字 2 到 9 组成的字符串 digits,返回它能表示的所有字母组合。 答案顺序不限。数字与字母的映射与电话按键一致,1 不对应任何字母。 ...