17. Letter Combinations of a Phone Number
Medium
2449327FavoriteShare
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"].
class Solution {
public:
vector<string> letterCombinations(string digits) {
vector<string> Result;
if(digits.length() == 0){return Result;}
Result.push_back("");
int Length = digits.length();
vector<string> Data(10);
Data[2] = "abc";
Data[3] = "def";
Data[4] = "ghi";
Data[5] = "jkl";
Data[6] = "mno";
Data[7] = "pqrs";
Data[8] = "tuv";
Data[9] = "wxyz";
for(int i = 0;i < digits.length();i ++){
int Size = Result.size();
for(int z = 0;z < Size;z++){
string Cur = Result.front();
Result.erase(Result.begin());
for(int j = 0;j < Data[digits[i] - '0'].length();j ++){
Result.push_back(Cur + Data[digits[i] - '0'][j]);
}
}
}
return Result;
}
};