class Solution{
private:
const string digit_to_letter[10] =
{
" ",
"",
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz"
};
std::vector<std::string> res;
void combine(const string &digits, int index, const string &s)
{
if (index == digits.size())
{ res.push_back(s);
return;
}
char digit = digits[index];
string letters = digit_to_letter[digit - '0'];
for (int i = 0; i < letters.size(); i++) {
combine(digits, index+1, s + letters[i]);
}
return;
}
public:
std::vector<std::string> letterCombinations(std::string digits)
{
res.clear();
if(digits.size() == 0) return res;
combine(digits, 0, "");
return res;
}
};