class Solution {
public:
vector<string> result;
string cur;
const string letterMap[10]={
"",
"",
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz"
};
void getCur(string digits,int startIndex){
if(startIndex==digits.size()){
result.push_back(cur);
return;
}
int digit=digits[startIndex]-'0';
string letter = letterMap[digit];
for(int i=0;i<letter.size();i++){
cur.push_back(letter[i]);
getCur(digits,startIndex+1);
cur.pop_back();
}
}
vector<string> letterCombinations(string digits) {
result.clear();
cur.clear();
if(digits.size()==0){
return result;
}
getCur(digits,0);
return result;
}
};