class Solution { public: //设置一个map用来数字与字母比对 unordered_mapchar, string _mp{ {2,abc}, {3,def}, {4,ghi}, {5,jkl}, {6,mno}, {7,pqrs}, {8,tuv}, {9,wxyz}, }; void dfs(vectorstring ans,string cur,string digits,int first,int len){ //达到终止条件所有数字都对照过 if(first len){ ans.push_back(cur); return; } auto str _mp[digits[first]]; //str数字对应的字母串 for(int i 0;istr.length();i){ auto c str[i]; cur.push_back(c); dfs(ans,cur,digits,first1,len); //回溯 cur.pop_back(); } } vectorstring letterCombinations(string digits) { vectorstring ans; dfs(ans,,digits,0,digits.length()); return ans; } };