「这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战」
17. 电话号码的字母组合
题目描述
给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例 1:
1 | arduino复制代码输入: digits = "23" |
示例 2:
1 | ini复制代码输入: digits = "" |
示例 3:
1 | arduino复制代码输入: digits = "2" |
解析
回溯法
- 首先需要一个字符串数组
vector<string> result
来存放结果,同时还需要一个字符串s
来存放叶子结点的值 - 确定递归函数的参数和返回值
- 参数:字符串,指向数字的索引(用来统计访问到第几个数,index在这里该表示树的深度)
- 确定终止条件
- 如果
index
等于输入的数字个数digits.size()
,则将s
添加到结果集result
中
- 如果
- 确定单层循环的逻辑
- 取Index指向的数字,找到对应的字符串
- for循环处理这个字符串
代码
1 | c++复制代码class Solution |
本文转载自: 掘金