17 电话号码的字母组合
题目描述
题目分析
先做一个索引表,将0-9的数字与其代表的字母对应起来,然后使用递归。
代码如下:
class Solution {
public:
vector<string> letterCombinations(string digits) {
vector<string> index = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
vector<string> ans;
if (digits.size() > 0){
vector<string> tmp = letterCombinations(digits.substr(1, digits.size() - 1));
if (tmp.size() == 0){
tmp.push_back("");
}
for (int i = 0; i < index[digits[0] - '0'].length(); ++i){
for (int j = 0; j < tmp.size(); ++j){
ans.push_back(index[digits[0] - '0'][i] + tmp[j]);
}
}
}
return ans;
}
};