class Solution {
public:
vector<string>cache={" "," ","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
vector<string>result;
vector<string> letterCombinations(string digits) {
if(digits.size()==0){
return result;
}
string tem;
zuhe(tem,digits,0);
return result;
}
void zuhe(string&tem,string digits,int i){
if(i==digits.size()){
result.push_back(tem);
return;
}
for(int j=0;j<cache[digits[i]-'0'].size();j++){
tem=tem+cache[digits[i]-'0'][j];
zuhe(tem,digits,i+1);
tem=tem.substr(0,i);
}
}
};