Letter Combinations of a Phone Number
class Solution {
public:
void genletters(const string &digits, string cur, int indx, vector<string> &vs, string digit2letters[]) {
int n = digits.length();
if (n == indx) {
if (cur != "")
vs.push_back(cur);
return;
}
int d = int(digits[indx] - '0');
for (int i = 0; i < digit2letters[d].length(); ++i) {
genletters(digits, cur + digit2letters[d][i], indx + 1, vs, digit2letters);
}
}
vector<string> letterCombinations(string digits) {
string digit2letters[] = {"", "", "abc", "def", "ghi", "jkl", "mno",
"pqrs", "tuv", "wxyz"
};
vector<string> vs;
string cur;
int indx = 0;
genletters(digits, cur, indx, vs, digit2letters);
return vs;
}
};