题目地址: https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
参考代码:
class Solution4 {
vector<string> result;
string s;
const string letterMap[10] = {
"", // 0
"", // 1
"abc", // 2
"def", // 3
"ghi", // 4
"jkl", // 5
"mno", // 6
"pqrs", // 7
"tuv", // 8
"wxyz", // 9
};
void backtracing(string digits, int index) {
if (index == digits.size()) {
result.push_back(s);
return;
}
int number = digits[index] - '0';
string str = letterMap[number];
for (int i = 0; i<str.size(); i++) {
s.push_back(str[i]);
backtracing(digits, index +1);
s.pop_back();
}
}
public:
vector<string> letterCombinations(string digits) {
result.clear();
s.clear();
if (digits.size() == 0) {
return result;
}
backtracing(digits, 0);
return result;
}
};
网友评论