class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param digits string字符串 * @return string字符串vector */ map<char, string> mp{{'2', "abc"}, {'3', "def"}, {'4', "ghi"}, {'5', "jkl"}, {'6', "mno"}, {'7', "pqrs"}, {'8', "tuv"}, {'9', "wxyz"}}; vector<string> ans; void recursive(int start1, int start2, int length, string path, string digits) { if (length == path.size()) { ans.push_back(path); return; } for (int i = 0; i < mp[digits[start1+1]].size(); i++) { recursive(start1+1, i, length, path+mp[digits[start1+1]][i], digits); } } vector<string> letterCombinations(string digits) { // write code here if (digits == "") return ans; int length = digits.size(); for (int i = 0; i < mp[digits[0]].size(); i++) { string path = string(1, mp[digits[0]][i]); recursive(0, 0, length, path, digits); } return ans; } };