本文介绍: LeetCode:17.电话号码的字母组合_哔哩哔哩_bilibili。的字符串,返回所有它能表示的字母组合。代码随想录 (programmercarl.com)解决思路:1.创建字符集(使数字和字母集做映射)注意 1 不对应任何字母。给出数字到字母的映射如下(与。循环的问题,举个栗子:输入。1).确定回溯函数参数。3).确定单层遍历逻辑。
给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例 1:
输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:
输入:digits = ""
输出:[]
示例 3:
输入:digits = "2"
输出:["a","b","c"]
const string letterMap[10] = {
"", // 0
"", // 1
"abc", // 2
"def", // 3
"ghi", // 4
"jkl", // 5
"mno", // 6
"pqrs", // 7
"tuv", // 8
"wxyz", // 9
};
2.回溯算法来解决 n 个 for 循环的问题,举个栗子:输入“23”,长度为 2
vector<string> result;
string strPath;
void backtracking(const string& digits, int index)
- 如果 index 等于 输入的数字个数(digits.size)了,就终止,这是因为 index 就是用来遍历digits 的
- 举个栗子:“23”,有两个数字,那么根节点往下递归两层就可以了
- 收集结果,结束本层递归
if(index == digits.size()) {
result.push_back(strPath);
return;
}
3).确定单层遍历逻辑
int num = digits[index]-'0';// 将index指向的数字转为int
string charSet = letterMap[num];// 取数字对应的字符集
for(int i=0;i<charSet.size();i++) {
strPath.push_back(charSet[i]);// 处理
backtracking(digits,index+1);// 递归,注意index+1,一下层要处理下一个数字了
strPath.pop_back();// 回溯
}
C++ 代码:
class Solution {
public:
vector<string> result;
string strPath;
const string letterMap[10] = {
"", // 0
"", // 1
"abc", // 2
"def", // 3
"ghi", // 4
"jkl", // 5
"mno", // 6
"pqrs", // 7
"tuv", // 8
"wxyz", // 9
};
void backtracking(const string& digits,int index) {
if(index == digits.size()) {
result.push_back(strPath);
return;
}
int num = digits[index]-'0';// 将index指向的数字转为int
string charSet = letterMap[num];// 取数字对应的字符集
for(int i=0;i<charSet.size();i++) {
strPath.push_back(charSet[i]);// 处理
backtracking(digits,index+1);// 递归,注意index+1,一下层要处理下一个数字了
strPath.pop_back();// 回溯
}
}
vector<string> letterCombinations(string digits) {
if (digits.size() == 0) return result;
backtracking(digits,0);
return result;
}
};
代码随想录 (programmercarl.com)https://www.programmercarl.com/0017.%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81%E7%9A%84%E5%AD%97%E6%AF%8D%E7%BB%84%E5%90%88.html#%E6%80%9D%E8%B7%AF还得用回溯算法!| LeetCode:17.电话号码的字母组合_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1yV4y1V7Ug/?spm_id_from=333.788&vd_source=a934d7fc6f47698a29dac90a922ba5a3
原文地址:https://blog.csdn.net/weixin_41987016/article/details/134670098
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_6627.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。