当前位置: 首页 > web >正文

电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例 1:

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]

示例 2:

输入:digits = ""
输出:[]

示例 3:

输入:digits = "2"
输出:["a","b","c"]

提示:

  • 0 <= digits.length <= 4
  • digits[i] 是范围 ['2', '9'] 的一个数字。

JavaScript 的函数执行机制

  • 函数会一直执行到遇见 return 或执行完所有语句

  • 没有 return 的函数默认返回 undefined

  • 在递归中,不恰当的继续执行会导致调用栈堆积

参数详解:

1.index 参数

作用:表示当前正在处理输入数字字符串中的第几个数字,从0开始计数

 2.current 参数

作用:累积当前已生成的字母组合字符串

思考:

Q:为什么不用 for...in
A:for...in 用于遍历对象属性,字符串遍历应用 for...of

代码实现:

/*** @param {string} digits* @return {string[]}*/
var letterCombinations = function (digits) {// 处理空输入情况if (digits.length === 0) {return [];}// 数字字母映射表const digitToLetters = {'2': 'abc','3': 'def','4': 'ghi','5': 'jkl','6': 'mno','7': 'pqrs','8': 'tuv','9': 'wxyz'};const result = [];// 定义回溯函数,递归生成所有组合function backtrack(index, current) {// 当处理完所有数字时终止if (index === digits.length) {result.push(current);return; // 结束当前递归分支}// 获取的数字对应的字母字符串const letters = digitToLetters[digits[index]];// 遍历当前数字对应的每个字母for (const letter of letters) {// 递归调用,处理下一个数字,并将当前字母添加到组合中backtrack(index + 1, current + letter);}}// 调用回溯函数:从第0个数字和空字符串开始backtrack(0, '');return result;
};

http://www.xdnf.cn/news/13663.html

相关文章:

  • 12.ack,ACK 的区别与含义
  • 【项目实践】SMBMS(Javaweb版)(五)供应商管理模块
  • 时间同步技术在电力系统中的应用二
  • 现代建筑中空气流向管理系统SKGL的智能化趋势
  • 稳定币的监管
  • Agent应用案例精选,以及主流Agent框架开源项目推荐
  • 软件测试面试题总结【含答案】
  • 3.3.2 纠错编码(海明校验码)
  • web项目实现PWA和Browsersync的安装及使用方法
  • 锂电池3V\3.3V\3.7V升5V升压芯片,选型指南
  • 欧洲AI的崛起:Mistral推出首款逻辑推理模型Magistral,挑战美中AI霸主地位
  • UE5 学习系列(七)导入bridge资产包
  • 雷卯针对易百纳EB-SS528-DC-175开发板防雷防静电方案
  • 龙虎榜——20250611
  • 内核性能调优
  • 什么是分布式锁,及其实现
  • 洛谷 P2757 [国家集训队] 等差子序列
  • Spring | 深入解析 Spring AOP 中的AopProxyUtils.ultimateTargetClass()解决代理对象注解获取问题
  • Zero-Shot突变预测VenusREM的安装和使用
  • Office 365下载安装教程(超详细图文教程)从零开始的完整安装指南
  • python中的字符串、输入与输出、列表
  • 【更新至2024年】1992-2024年全国及各省地区生产总值、第一产业增加值、第二产业增加值、第三产业增加值、省GDP数据(无缺失)
  • MySQL:Prepared Statement 预处理语句
  • 表格里的图片链接怎么变成图片【附工具+源码演示】
  • 鴻蒙app開發中如何 使用 shift+ctrl+f 快捷搜索
  • 旋翼无人机运行要点与技术分析!
  • Python机器学习模型中添加日志记录器
  • ubuntu install vncserver
  • (46)课68:查看索引 SHOW INDEX FROM 表名;删除索引 DROP INDEX index_name ON 表名;
  • VOSK 离线中文语音识别实战:精准转文字、格式避坑全解析