Given a string containing digits from 2-9
inclusive, 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. Note that 1 does not map to any letters.
Example:
Input: "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.
题意
字母和数字间存在映射,给出一串数字求可以映射到的所有字母串
感觉好像没啥意思
题解
1 class Solution { 2 public: 3 vector<string> letterCombinations(string digits) { 4 vector<string> Old, New; 5 Old.push_back(""); 6 int f[10][2] = { -1,-1,-1,-1,0,2,3,5,6,8,9,11,12,14, 7 15,18,19,21,22,25 }; 8 for (int i = 0; digits[i]; i++) { 9 New.clear(); 10 int idx = digits[i] - '0'; 11 for (int j = 0; j < Old.size(); j++) { 12 for (int k = f[idx][0]; k <= f[idx][1]; k++) 13 New.push_back(Old[j] + (char)(k + 'a')); 14 } 15 Old = New; 16 } 17 return New; 18 } 19 };