题目
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”].
思路
三层循环,依次遍历得到结果。
代码
class Solution {
public:
vector<string> letterCombinations(
string digits) {
vector<string> dict = {
"",
"",
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz"};
vector<string> result;
if (digits==
"") {
return result;
}
result.push_back(
"");
for (
int i=
0; i<digits.size(); i++) {
string singleDigit = dict[digits[i]-
'0'];
if (singleDigit ==
"") {
continue;
}
vector<string> tmp;
for (
int j=
0; j<singleDigit.size(); j++) {
int k=
0;
long size = result.size();
for (k=
0; k<size; k++) {
tmp.push_back(result[k]+singleDigit[j]);
}
}
result.swap(tmp);
}
return result;
}
};