17.电话号码的字母组合
数字和字母如何映射
- 二维数组
暴力的树形结构
回溯三部曲
确定回溯函数参数
- index:是记录遍历第几个数字了,就是用来遍历digits的(题目中给出数字字符串),同时index也表示树的深度。
确定终止条件
- index 等于 输入的数字个数(digits.size)
确定单层遍历逻辑
- 注意将digits里字符转化整形变量在取查找哈希表。
- 注意index作用,区别于之前题目中的startIndex.
int digit = digits[index] - '0'; // 将index指向的数字转为int
string letters = letterMap[digit]; // 取数字对应的字符集
for (int i = 0; i < letters.size(); i++) {
s.push_back(letters[i]); // 处理
backtracking(digits, index + 1); // 递归,注意index+1,一下层要处理下一个数字了
s.pop_back(); // 回溯
}