给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
实现具体思路可参考视频:
代码实现:
let letterArr = [
' ',
'',
'abc',
'edf',
'ghi',
'jkl',
'mno',
'pqrs',
'tuv',
'wxyz'
]
let results = []
var letterCombinations = function(digits) {
if(digits.length === 0) {
return results
}
findCombination(digits, 0, '')
return results
};
function findCombination(digits, index, str) {
if(index === digits.length) {
results.push(str)
return
}
let c = digits[index]
let letters = letterArr[c - '0']
for (let i = 0; i < letters.length; i++) {
findCombination(digits, index + 1, str + letters[i])
}
}
console.log(letterCombinations(''))