本文最后更新于615 天前,其中的信息可能已经过时,如有错误请发送邮件到tomding1065@gmail.com
视频讲解:https://www.bilibili.com/video/BV1yV4y1V7Ug
这个题的思路挺简单的,就是在里面字符串转化为数字的部分int digit = digits[index] - '0';以及构造一个电话本的部分,已经将转化好的数字对应的字符储存在新的string里面需要我在做题中慢慢体会。
CPP
class Solution {
public:
const string letterMap [10] = {
"",
"",
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz",
};
string s;
vector<string>res;
void backtracing(const string& digits, int index){
if(index == digits.size()){
res.push_back(s);
return ;
}
int digit = digits[index] - '0';
string letters = letterMap[digit];
for(int i = 0; i<letters.size(); i++){
s.push_back(letters[i]);
backtracing(digits, index + 1);
s.pop_back();
}
}
vector<string> letterCombinations(string digits) {
if(digits.size() == 0){
return res;
}
backtracing(digits, 0);
return res;
}
};