17. 电话号码的字母组合
//abc def ghi
void combine(vector<string>& cmb, string& digits, size_t i,string* map, string str)
{
if(i == digits.size())
{
cmb.push_back(str);
return;
}
for(int j = 0; j < (map[digits[i] - '0']).size(); j++)
{
combine(cmb, digits, i + 1, map, str + (map[digits[i] - '0'])[j]);
}
}
class Solution {
public:
vector<string> letterCombinations(string digits) {
if(digits.size() == 0)
return vector<string>();
string map[10] = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};//存数字对应的字母
vector<string> cmb;//存组合的字母
string str;
size_t i = 0;//存当前走到第 i + 1个数字了
combine(cmb, digits, i, map, str);
return cmb;
}
};
- 博主长期更新,博主的目标是不断提升阅读体验和内容质量,如果你喜欢博主的文章,请点个赞或者关注博主支持一波,我会更加努力的为你呈现精彩的内容。