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

力扣习题——电话号码的字母组合

        本期我们来做一个力扣上的习题,如标题所示,如下就是题目

        相关题解代码已经上传至作者的个人gitee:楼田莉子/C++算法学习喜欢请支持一下谢谢

        算法思路:哈希表+回溯

        号码对应关系如下:

// 2 -> abc
// 3 -> def
// 4 -> ghi
// 5 -> jkl	
// 6 -> mno
// 7 -> pqrs
// 8 -> tuv
// 9 -> wxyz

        

        

class Solution {
public:vector<string> ret; // 存储所有可能的字母组合结果string ans; // 当前正在构建的字母组合// 数字到字母的映射哈希表unordered_map<char, string> hash = {{'2', "abc"}, {'3', "def"}, {'4', "ghi"}, {'5', "jkl"},{'6', "mno"}, {'7', "pqrs"}, {'8', "tuv"}, {'9', "wxyz"}};// 回溯函数:digits为输入数字字符串,start为当前处理的数字索引,n为数字字符串长度void backtracking(string digits, int start, int n) {// 终止条件:当前组合长度等于数字串长度,说明已形成一个完整组合if (ans.size() == n) {ret.push_back(ans); // 将当前组合加入结果集return;}// 遍历数字字符串从start到末尾for (int i = start; i < n; i++) {// 获取当前数字对应的字母字符串string letters = hash[digits[i]];// 遍历当前数字的所有字母for (int j = 0; j < letters.size(); j++) {ans += letters[j]; // 将字母添加到当前组合backtracking(digits, i + 1, n); // 递归处理下一个数字(索引i+1)ans.erase(ans.end() - 1); // 回溯:删除刚才添加的字母,尝试下一个字母}}}//主函数vector<string> letterCombinations(string digits) {if (digits == "") return {}; // 如果输入为空,直接返回空数组int n = digits.size();backtracking(digits, 0, n); // 从索引0开始回溯return ret; }
};

        本期这个题目就到这里结束了,喜欢请点个赞谢谢


文章转载自:

http://T6diVtE4.nyjgm.cn
http://Z23hiRcP.nyjgm.cn
http://HAvYQBVn.nyjgm.cn
http://k0W8cTtB.nyjgm.cn
http://BV4i9rWX.nyjgm.cn
http://BWcEtpHx.nyjgm.cn
http://z3q4GqV3.nyjgm.cn
http://OLDoj44W.nyjgm.cn
http://ng30CEEU.nyjgm.cn
http://bJxdM7a5.nyjgm.cn
http://QKiQFbrJ.nyjgm.cn
http://HAxngODq.nyjgm.cn
http://cbeDWtM9.nyjgm.cn
http://KY2ZSdnB.nyjgm.cn
http://xsg2pF5X.nyjgm.cn
http://XAi9Mgm9.nyjgm.cn
http://2Tqk3tJF.nyjgm.cn
http://fftkaw0R.nyjgm.cn
http://Zq9j3vvo.nyjgm.cn
http://Ta9DVxDF.nyjgm.cn
http://q2Flvkmt.nyjgm.cn
http://zB4rauWl.nyjgm.cn
http://fcBCBFRs.nyjgm.cn
http://CfgmCPl5.nyjgm.cn
http://FzcyHT7u.nyjgm.cn
http://Fwcw1W2Q.nyjgm.cn
http://z8KPnAMs.nyjgm.cn
http://7awrppet.nyjgm.cn
http://6NVc6S3E.nyjgm.cn
http://kHkqniAJ.nyjgm.cn
http://www.dtcms.com/a/376582.html

相关文章:

  • Linux环境下爬虫程序的部署难题与系统性解决方案
  • 深入解析ThreadLocal:线程数据隔离利器
  • D01-【计算机二级】Python(1)基本操作第41题
  • API开发工具postman、国内xxapi和SmartApi的性能对比
  • Scikit-learn Python机器学习 - 分类算法 - 线性模型 逻辑回归
  • SciKit-Learn 全面分析 digits 手写数据集
  • 《sklearn机器学习——数据预处理》标准化或均值去除和方差缩放
  • 保序回归Isotonic Regression的sklearn实现案例
  • 《sklearn机器学习——数据预处理》离散化
  • 无人机桨叶转速技术要点与突破
  • GPFS存储服务如何使用及运维
  • ELK 日志采集与解析实战
  • BI数据可视化:驱动数据价值释放的关键引擎
  • FinChat-金融领域的ChatGPT
  • OpenTenBase日常操作锦囊(新手上路DML)
  • Dart 中的 Event Loop(事件循环)
  • C++/Java编程小论——方法设计与接口原则总结
  • Java-Spring入门指南(四)深入IOC本质与依赖注入(DI)实战
  • 线扫相机采集图像起始位置不正确原因总结
  • JVM 对象创建的核心流程!
  • 秋日私语:一片落叶,一个智能的温暖陪伴
  • springCloud之配置/注册中心及服务发现Nacos
  • 第1讲 机器学习(ML)教程
  • Ubuntu 系统 YOLOv8 部署教程(GPU CPU 一键安装)
  • 【C++】string 的使用(初步会用 string,看这一篇文章就够了)
  • 基于 lua_shared_dict 的本地内存限流实现
  • 基于场景的自动驾驶汽车技术安全需求制定方法
  • 【lucene】pointDimensionCount` vs `pointIndexDimensionCount`:
  • 大语言模型入门指南:从原理到实践应用
  • 旧设备新智慧:耐达讯自动化RS232转Profibus连接流量泵工业4.0通关秘籍