Leecode 0017. Letter Combinations of a Phone Number
17. Letter Combinations of a Phone Number
题目
Given a string containing digits from 2-9
inclusive, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Example:
1 | Input: "23" |
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
题目大意
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
解题思路
- DFS 递归深搜
digits
:输入的数字字符串pos
:当前处理的数字位置(索引)len
:数字字符串的长度
- 执行流程:
- 边界检查:若输入为空(
len == 0
),直接返回 - 终止条件:当
pos == len
时,说明已生成一个完整组合,将其加入结果集处理当前数字:- 计算当前数字在映射表中的索引
- 遍历该数字对应的所有字母
- 对每个字母执行:加入临时组合→递归处理下一位→回溯移除字母
- 边界检查:若输入为空(
1 | class Solution { |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.