Published Nov 30, 2021
[
 
]
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.
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Input: digits = ""
Output: []
Input: digits = "2"
Output: ["a","b","c"]
- 0 <= digits.length <= 4
- digits[i] is a digit in the range ['2', '9'].
function letterCombinations(digits: string): string[] {
if(!digits) return []
const res = []
const digitToChar = {
2: 'abc',
3: 'def',
4: 'ghi',
5: 'jkl',
6: 'mno',
7: 'qprs',
8: 'tuv',
9: 'wxyz'
}
const dfs = (i, curStr) => {
// if we have the string we want, push & return
if(curStr.length === digits.length) {
res.push(curStr)
return
}
// for current digit, explore its neighbor
for(let char of digitToChar[digits[i]]) {
dfs(i + 1, curStr + char)
}
}
// starts with 0 & empty
dfs(0, '')
return res;
};