class Solution {
public:
vector<string>mp;
vector<string>res;
string temp="";
vector<string> letterCombinations(string digits) {
if(digits=="")
return mp;
int len=digits.size();
mp.push_back("abc");
mp.push_back("def");
mp.push_back("ghi");
mp.push_back("jkl");
mp.push_back("mno");
mp.push_back("pqrs");
mp.push_back("tuv");
mp.push_back("wxyz");
backtracking(digits,len,0);
return res;
}
void backtracking(string digits,int len,int st)
{
if(temp.size()>=len)
{
res.push_back(temp);
return;
}
for(int i=0;i<mp[digits[st]-'2'].size();i++)
{
temp+=mp[digits[st]-'2'][i];
backtracking(digits,len,st+1);
temp.pop_back();
}
}
};