给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
function main(num) {
const result = []
const letters = [
'abc',
'def',
'ghi',
'jkl',
'mno',
'pqrs',
'tuv',
'wxyz'
]
function getNumLetters(num) {
return letters[num - 2]
}
function run(prvLetters, step) {
if (step == num.length) {
if (prvLetters.length > 0) {
result.push(prvLetters)
}
return
}
const letters = getNumLetters(num[step])
step += 1
for (let i = 0; i < letters.length; i++) {
run(prvLetters + letters[i], step)
}
}
run('', 0)
return result
}
console.log(main(''))