![在这里插入图片描述](https://img-blog.csdnimg.cn/17bee1a9eaa64f8fa7b40424cc3de1b8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54us5LiA5peg5LqM55qEVlY=,size_20,color_FFFFFF,t_70,g_se,x_16)
思路
class Solution {
public:
vector<string> letterCombinations(string digits) {
vector<int>res;
map<int,string>mp;
vector<string>ans;
mp[2]="abc";
mp[3]="def";
mp[4]="ghi";
mp[5]="jkl";
mp[6]="mno";
mp[7]="pqrs";
mp[8]="tuv";
mp[9]="wxyz";
string s="";
for(int i=0;i<digits.size();i++){
res.push_back(digits[i]-'0');
}
int n=res.size();
if(n!=0)dfs(0,n,s,mp,ans,res);
return ans;
}
void dfs(int n,int size,string s,map<int,string>mp,vector<string>&ans,vector<int>res){
if(n==size){
ans.push_back(s);
return;
}
for(int i=0;i<mp[res[n]].size();i++){
s+=mp[res[n]][i];
dfs(n+1,size,s,mp,ans,res);
s.pop_back();
}
}
};