17. Letter Combinations of a Phone Number
Total Accepted: 76019
Total Submissions: 267108
Difficulty: Medium
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.
Subscribe to see which companies asked this question
Have you met this question in a real interview?
排列组合
先打个表,然后枚举即可
class Solution {
public:
vector<string> letterCombinations(string digits)
{
vector<string> ret;
if(digits == "")
return ret;
ret.push_back("");
string dict[]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
for(int i = 0; i < digits.size(); i ++)
{
int size = ret.size();
for(int j = 0; j < size; j ++)
{
string cur = ret[0];
ret.erase(ret.begin());
for(int k = 0; k < dict[digits[i]-'0'].size(); k ++)
ret.push_back(cur + dict[digits[i]-'0'][k]);
}
}
return ret;
}
};