1. 程式人生 > >19.1.26 [LeetCode17] Letter Combinations of a Phone Number

19.1.26 [LeetCode17] Letter Combinations of a Phone Number

view key tor input 映射 push_back str push display

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 };
View Code

19.1.26 [LeetCode17] Letter Combinations of a Phone Number