//和combination sum很像,就是多一个dictionary
class Solution {
const vector<string> yang={
" ",
"",
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz"
};
public:
vector<string> letterCombinations(string digits) {
vector<string> result;
string temp="";
dfs(digits,0,temp,result);
return result;
}
void dfs(const string &digits,int cur,string temp,vector<string>&result)
{
if(cur==digits.size())
{
result.push_back(temp);
return;
}
for(int i=0;i<yang[digits[cur]-'0'].size();i++)
{
temp=temp+yang[digits[cur]-'0'][i];
dfs(digits,cur+1,temp,result);
temp.pop_back();
}
}
};