[leetcode-17-Letter Combinations of a Phone Number]
Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
vector<string> letterCombinations(string digits) { vector<string>res; if (digits.size() == 0)return res; string charmap[10] = { "0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" }; res.push_back(""); for (int i = 0; i < digits.size();i++) { vector<string>tempres; string chars = charmap[digits[i]-'0']; for (int c = 0; c < chars.size();c++) { for (int j = 0; j < res.size();j++) { tempres.push_back(res[j] + chars[c]); } } res = tempres; } return res; }
参考:
https://discuss.leetcode.com/topic/3396/my-iterative-sollution-very-simple-under-15-lines