vector<string> letterCombinations(string digits) {
// Note: The Solution object is instantiated only once and is reused by each test case.
string maps[] = {"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
vector<string> res;
dfs(0,digits,"",res,maps);
return res;
}
void dfs(int pos,string& digits,string str,vector<string>& res,string maps[])
{
if(pos==digits.size())
{
res.push_back(str);
return;
}
int num = digits[pos] - '2';
for(int i=0;i<maps[num].size();i++)
dfs(pos+1,digits,str+maps[num][i],res,maps);
}