Solved·17 Sept
Letter Combinations of a Phone Number
DifficultyMedium
Patternsubset
TrackDSA
tl;dr
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.
full write-up
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 digits 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 = "2" Output: ["a","b","c"]
Constraints:
1 <= digits.length <= 4 digits[i] is a digit in the range ['2', '9'].
Solution
var letterCombinations = function(digits) {
if (!digits) {
return [];
}
const phoneMap = {
'2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl',
'6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz'
};
const result = [];
function backtrack(index, path) {
if (path.length === digits.length) {
result.push(path);
return;
}
for (const letter of phoneMap[digits[index]]) {
backtrack(index + 1, path + letter);
}
}
backtrack(0, "");
return result;
};