1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| unordered_map<char, string> m{ {'2',"abc"},{'3',"def"}, {'4', "ghi"},{'5',"jkl"},{'6',"mno"}, {'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}, }; vector<string> letterCombinations(string digits) { vector<string> res; if (digits.size() == 0) return res; string s; letterCombinations(digits, 0, res, s); return res; } void letterCombinations(string &digits, int index, vector<string> &res, string &s) { if (index == digits.size()) { res.push_back(s); return; } for(auto c: m[digits[index]]) { s.push_back(c); letterCombinations(digits, index+1, res, s); s.pop_back(); } }
|