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

力扣HOT100之回溯:17. 电话号码的字母组合


这道题自己A的,感觉这道题的思路就是用一个二重循环来遍历,外层循环用于遍历输入字符串digits的每一个数字字符,内层循环则遍历每一个数字字符对应的字母字符,我们定义一个全局变量path来存储每一种可能的结果,递归函数的输入参数有原始字符串digits和当前遍历到的数字字符下标start_indexstart_index则替代了外层循环的作用,递归函数的主体部分的二重循环退化为一重循环,该一重循环则负责将digits[start_index]处的所有可能的字符都遍历一遍,每一种可能的字符添加到path末尾后,直接将start_index + 1,然后递归调用递归函数,当递归调用结束后,直接从path弹出最后一个元素。

class Solution {
public:vector<string> result;string path = "";unordered_map<int, string> Hash = {{2, "abc"}, {3, "def"}, {4, "ghi"}, {5, "jkl"},{6, "mno"}, {7, "pqrs"}, {8, "tuv"}, {9, "wxyz"}};   //建立数字与字符的映射vector<string> letterCombinations(string digits) {backtracking(digits, 0);return result;}void backtracking(string digits, int start_index){if(path.size() == digits.size() && path.size() > 0){  //所有数字映射完毕result.push_back(path);return ;}//递归主体for(int i = 0; i < Hash[digits[start_index] - '0'].size(); i++){path += Hash[digits[start_index] - '0'][i];backtracking(digits, start_index + 1);path.pop_back();}}
};
http://www.xdnf.cn/news/9100.html

相关文章:

  • MyBatis 动态 SQL 详解:灵活构建强大查询
  • 开源 FcDesigner 表单设计器组件事件详解
  • JavaScript面试题之深浅拷贝
  • PBX、IP PBX、FXO 、FXS 、VOIP、SIP 的概念解析以及关系
  • SpringAI(GA):Tool工具整合—快速上手
  • [7-1] ADC模数转换器 江协科技学习笔记(14个知识点)
  • 开源软件协议大白话分类指南
  • [yolov11改进系列]基于yolov11引入自注意力与卷积混合模块ACmix提高FPS+检测效率python源码+训练源码
  • 常见算法题目4 - 给定一个字符串,判断是否为有效的括号
  • 鸿蒙桌面快捷方式开发
  • 进程通信(管道,共享内存实现)
  • 【unity游戏开发——编辑器扩展】Gizmos可视化辅助工具
  • Leetcode 1924. 安装栅栏 II
  • RabbitMQ 集群与高可用方案设计(二)
  • PyTorch实战(7)——生成对抗网络(Generative Adversarial Network, GAN)实践详解
  • 黑龙江云前沿-服务器托管
  • CentOS7安装 htop(100% 可以安上)
  • 使用VuePress开发日志
  • Redis与Lua脚本深度解析:原理、应用与最佳实践
  • ES文件管理器 安卓APP(文件管理器) v4.4.3.0 无广告高级版
  • 【无标题】第一章 Hello World的诅咒
  • 古腾堡编辑器教程:如何使用WordPress图库区块
  • 第十讲 | 继承
  • 商品颜色/尺码选项太多谷歌爬虫不收录怎么办?
  • 自动化测试:等待方式
  • 体育数据支撑比分网的全链路技术解析:从架构设计到场景落地
  • SQLMesh 用户定义变量详解:从全局到局部的全方位配置指南
  • OpenSSL 文件验签与字符串验签原理及 C 语言实现详解
  • 编程中优秀大模型推荐:特点与应用场景深度分析
  • Pycharm的简单介绍