19.1.26 [LeetCode17] Letter Combinations of a Phone Number

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
注定失败的战争,也要拼尽全力去打赢它; 就算输,也要输得足够漂亮。
原文地址:https://www.cnblogs.com/yalphait/p/10323046.html