用数组来保存电话号码数字中的字母,下标为电话号码数字
var letterCombinations = function(n) {
let arr=[] //保存结果
let p=[]
const arr1=["","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
if(n===''){
return arr
}
//如果只有一个数字,则把该数字所有符号打印出来
if(n.length==1){
return arr1[n].split("")
}
const dd=function(n,k,index){
//中止条件
if(p.length===k){
arr.push(p.join(""))
return
}
//比如n="23",则会遍历下标为2和3里面的值
for(let i of arr1[n[index]]){
p.push(i)
dd(n,k,index+1)
p.pop()
}
}
dd(n,n.length,0)
return arr
};