class Solution {
public:
vector<string> dic={"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
vector<string> ans;
string tmp;
void getans(string d,int k,int n){
if(n==k){
ans.push_back(tmp);
tmp.clear();
return ;
}
int p=d[k]-'2';
for(int i=0;i<dic[p].size();i++){
string save=tmp;
tmp=tmp+dic[p][i];
getans(d,k+1,n);
tmp=save;
}
return ;
}
vector<string> letterCombinations(string digits) {
tmp.clear();
if(digits.size()==0) return ans;
getans(digits,0,digits.size());
return ans;
}
};
其实一开始就想到了递归……但是不知道为什么想从最后一个往前递归…………