Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
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 1:
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Example 2:
Input: digits = ""
Output: []
Example 3:
Input: digits = "2"
Output: ["a","b","c"]
Solution : (Backtracking)
classSolution{public:voidcombine(vector<string> &res,string a,string b) { string k = a;for (int i =0; i <b.size(); i++) {res.push_back(k +b[i]); }return; }vector<string> letterCombinations(string digits) { vector<string> s{"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; vector<string> res;if (digits.length() ==0) {return res; } string a =s[digits[0] -48]; string k ="";for (int i =0; i <a.length(); i++) { k = k +a[i];res.push_back(k); k =""; }for (int i =1; i <digits.length(); i++) { vector<string> v;for (int j =0; j <res.size(); j++) {combine(v,res[j],s[digits[i] -48]); }res.clear(); res = v; }return res; }};