很像那道全排序的问题
class Solution {
public:
map<int,string>m;
void solve(vector<string>&ans,string digits,string temp,int k,int n)
{
if(k == n)
{
ans.push_back(temp);
return;
}
string s = m[digits[k]-'0'];
for(int i = 0;i<s.size();i++)
{
temp += s[i];
solve(ans,digits,temp,k+1,n);
temp.pop_back();
}
}
vector<string> letterCombinations(string digits) {
vector<string>ans;
int n = digits.size();
if(n == 0) return ans;
m[2] = "abc"; m[3] = "def";m[4] = "ghi"; m[5] = "jkl";
m[6] = "mno"; m[7] = "pqrs"; m[8] = "tuv"; m[9] = "wxyz";
string temp = "";
solve(ans,digits,temp,0,n);
return ans;
}
};