
class Solution {
public:
vector<string> letterCombinations(string digits) {
if(digits=="") return vector<string>();
string res[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
vector<string> arr;
digui("",digits,res,0,arr);
return arr;
}
void digui(string key,string digits,string res[10],int index,vector<string>& arr){
int k = digits[index]-'0';
if(key.size()==digits.size()){
arr.push_back(key);
return;
}
for(int i=0;i<res[k].size();++i){
key.push_back(res[k][i]);
digui(key,digits,res,index+1,arr);
key.pop_back();
}
}
};