思路:排列组合题目一般都可以用递归+回溯的思路做
public:
map<char,vector<char>> m{{'2',{'a','b','c'}},{'3',{'d','e','f'}},{'4',{'g','h','i'}},{'5',{'j','k','l'}},{'6',{'m','n','o'}},{'7',{'p','q','r','s'}},{'8',{'t','u','v'}},{'9',{'w','x','y','z'}}};
vector<string> letterCombinations(string digits) {
vector<string> res;
if(digits.size()==0)
return res;
backtracking("",0,digits,res);
return res;
}
void backtracking(string tmp, int i,string s,vector<string>& res )
{
if(tmp.size()==s.length())
{
//cout<<tmp<<endl;
res.push_back(tmp);
return;
}
vector<char> v=m[s[i]];
for(int j=0;j<v.size();j++)
{
backtracking(tmp+v[j],i+1,s,res);
}
return;
}
};