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”].
C++
vector<string> letterCombinations(string digits) {
if(digits.size() == 0)
return {};
vector<string> res;
vector<string> dict{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
DFS(digits,dict,"",0,res);
return res;
}
void DFS(string& digits,vector<string>& dict,string item,int level,vector<string>& res)
{
if(level == digits.size())
{
res.push_back(item);
return;
}
string str = dict[digits[level] - '0'];
for(int i = 0;i < str.size();++i)
{
item.push_back(str[i]);
DFS(digits,dict,item,level+1,res);
item.pop_back();
}
}
};