深搜
string keys [10] = {" ", "", "abc", "def",
"ghi", "jkl", "mno",
"pqrs","tuv", "wxyz"};
void dfs(vector<string> &result, string s , int i, string digits){
if(i == digits.length()){
result.push_back(s);
return;
}
int d = (int) digits[i] - '0';
for(int j = 0; j < keys[d].length(); j++){
s[i] = keys[d][j];
dfs(result, s, i+1, digits);
}
}
vector<string> letterCombinations(string digits) {
int n = digits.length();
vector<string> result;
string s (n, '*');
dfs(result, s, 0, digits);
return result;
}