每天学习一点算法 2026/03/16题目电话号码的字母组合给定一个仅包含数字 2-9 的字符串返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下与电话按键相同。注意 1 不对应任何字母。我们可以把每个数字对应的字母情况当做树的节点然后统计路径结构即可。比如‘26’对应a b c和m n o对应树结构如下 / | \ a b c / | \ / | \ / | \ m n o m n o m n o这种结构就好处理多了我们遍历所有路径统计结果就行了。functionletterCombinations(digits:string):string[]{// 数字字母映射表constdist{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],}constresArr[]// 结果数组// 递归辅助函数functionhelper(digits:string,index:number,str:string){if(indexdigits.length){// 当前路径走到末尾 记录结果并回归resArr.push(str)return}constlettersdist[digits[index]]// 获取当前数字对应的字母for(letiofletters){// 记录当前digits索引和结果字符串letcurrentIndexindexletcurrentStrstr// 更新digits索引和结果字符串传入下一层递归currentStri currentIndexhelper(digits,currentIndex,currentStr)}}// 初始传入指针和空字符串helper(digits,0,)returnresArr};题目来源力扣LeetCode
【每天学习一点算法 2026/03/16】电话号码的字母组合
每天学习一点算法 2026/03/16题目电话号码的字母组合给定一个仅包含数字 2-9 的字符串返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下与电话按键相同。注意 1 不对应任何字母。我们可以把每个数字对应的字母情况当做树的节点然后统计路径结构即可。比如‘26’对应a b c和m n o对应树结构如下 / | \ a b c / | \ / | \ / | \ m n o m n o m n o这种结构就好处理多了我们遍历所有路径统计结果就行了。functionletterCombinations(digits:string):string[]{// 数字字母映射表constdist{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],}constresArr[]// 结果数组// 递归辅助函数functionhelper(digits:string,index:number,str:string){if(indexdigits.length){// 当前路径走到末尾 记录结果并回归resArr.push(str)return}constlettersdist[digits[index]]// 获取当前数字对应的字母for(letiofletters){// 记录当前digits索引和结果字符串letcurrentIndexindexletcurrentStrstr// 更新digits索引和结果字符串传入下一层递归currentStri currentIndexhelper(digits,currentIndex,currentStr)}}// 初始传入指针和空字符串helper(digits,0,)returnresArr};题目来源力扣LeetCode