Letter Combinations of a Phone Number - LeetCode
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.
学到的这种初始化方式
char ops[10][5] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
class Solution {
public:
vector<string> ans;
char ops[10][5] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
vector<string> letterCombinations(string digits) {
dfs(digits, 0, "");
return ans;
}
// digits中第num个数
void dfs(string digits, int num, string path) {
if (num == digits.size()) {
if(path.size())
ans.push_back(path);
return;
}
int c = digits[num] - '0';
for (int i = 0; ops[c][i]; i ++ )
dfs(digits, num + 1, path + ops[c][i]);
}
};