js — 电话号码的字母组合
题目具体内容
代码
/**
* @param {string} digits
* @return {string[]}
*/
var letterCombinations = function (digits) {
// 对象化数字
const nums = {
"2": ['a', 'b', 'c'],
"3": ['d', 'e', 'f'],
"4": ['g', 'h', 'i'],
"5": ['j', 'k', 'l'],
"6": ['m', 'n', 'o'],
"7": ['p', 'q', 'r', 's'],
"8": ['t', 'u', 'v'],
"9": ['w', 'x', 'y', 'z']
}
if (digits === "") {
return []
}
// 将字符串转换成数组
let arr = digits.split('')
// 存储输入字符串对应的字母键
let finds = []
arr.forEach(x => {
finds.push(nums[x])
})
if (arr.length === 1) {
return finds[0]
}
let result = finds[0]
for (let i = 1; i < finds.length; i++) {
const queue=result.slice(0)
result=[]
// 累加映射
queue.forEach(a=>{
finds[i].forEach(b=>{
result.push(a+b)
})
})
}
return result
};