Leetcode刷题详解——电话号码的字母组合
1. 题目链接:17. 电话号码的字母组合
2. 题目描述:
给定一个仅包含数字
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']
的一个数字。
3. 解法:
3.1 算法思路:
每个位置可以选择的字符与其他位置并不冲突,因此不需要标记已经出现的字符,只需要将每个数字依次填入字符串中进行递归,在回溯是撤销填入操作即可
在递归之前我们需要定义一个的字典 hash
,纪录2~9各自对应的字符
3.2 递归函数流程:
- 递归结束条件时:当
pos
等于digits
的长度时,将path
加入到ret
中返回 - 取出当前处理的数字
digits
,根据hash
取出的对应的字母列表letters
- 遍历字母列表
letters
,将当前字母加入到组合字符串path
的末尾,然后递归处理下一个数字(传入pos+1
,表示处理下一个数字) - 递归处理结束后,将加入的字母从
path
的末尾删除,表示回溯 - 最终返回
ret
即可
3.3 C++算法代码:
class Solution {string hash[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; // 定义一个字符串数组,存储每个数字对应的字母组合string path; // 定义一个字符串变量,存储当前生成的字母组合vector<string> ret; // 定义一个字符串向量,存储所有可能的字母组合结果
public:vector<string> letterCombinations(string digits) { // 定义一个公共成员函数,接受一个字符串参数digits,表示输入的数字序列if(digits.size()==0) return ret; // 如果输入的数字序列为空,则直接返回空的结果向量retdfs(digits,0); // 否则,调用dfs函数进行深度优先搜索return ret; // 返回结果向量ret}void dfs(string& digits,int pos) // 定义一个私有成员函数dfs,接受两个参数:一个是输入的数字序列digits,另一个是当前处理的位置pos{if(pos==digits.size()) // 如果当前位置等于数字序列的长度{ret.push_back(path); // 将当前的字母组合添加到结果向量ret中return; // 返回}for(auto ch:hash[digits[pos]-'0']) // 遍历当前数字对应的字母组合{path.push_back(ch); // 将字母添加到path中dfs(digits,pos+1); // 递归地调用dfs函数处理下一个位置的数字path.pop_back(); // 将最后一个添加的字母从path中移除}}
};
相关文章:

Leetcode刷题详解——电话号码的字母组合
1. 题目链接:17. 电话号码的字母组合 2. 题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。…...

dream_ready
🧸欢迎来到dream_ready的博客,📜相信您对这篇博客也感兴趣o (ˉ▽ˉ;) Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法 路的尽头是什么?这是我年少时常伴在嘴…...

离线视频ocr识别
sudo apt-get install libleptonica-dev libtesseract-dev sudo apt-get install tesseract-ocr-chi-sim python -m pip install video-ocrwindows安装方法: 下载安装 https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.3.20231005.exe 下…...
双十一流量卡选购指南:不要只看月租,性价比高才是硬道理!
双十一来了,流量卡也推出了不少性价比较高的套餐,为了方便大家选择,这篇文章给大家推荐如何流量卡,希望大家都能够买到合适自己的流量卡,不该花的钱坚决不花! 这篇文章内容较多,请大家耐…...

时序预测 | MATLAB实现WOA-CNN-GRU-Attention时间序列预测(SE注意力机制)
时序预测 | MATLAB实现WOA-CNN-GRU-Attention时间序列预测(SE注意力机制) 目录 时序预测 | MATLAB实现WOA-CNN-GRU-Attention时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MATLAB实现…...

华为防火墙二层透明模式下双机热备负载分担配置(两端为路由器)
这种模式只做负载分担,不能是主备备份,因为主备备份模式下,备设备会把vlan down掉,如果是主备备份模式,那在主挂后,备的状态在切换过程中先起vlan,再建立ospf邻接,那业务会断线较久&…...

“基于RflySim平台飞控底层算法开发”系列专题培训 (第三期)
>> RflySim平台系列专题培训 RflySim平台是一个生态系统或工具链(官网:https://doc.rflysim.com),发起于北航可靠飞行控制研究组,主要用于遵循基于模型设计的思想进行无人系统的控制和安全测试。本平台选择MATL…...

Leetcode刷题详解——全排列 II
1. 题目链接:47. 全排列 II 2. 题目描述: 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 输…...

音频——解析 PCM 数据
文章目录 生成 PCM 数据16bit16bit mono16bit stereo16bit 4 channel16bit 8 channel24bit解析 PCM 数据解析 24bit 数据程序源码生成 PCM 源码解析 PCM 源码生成 PCM 数据 16bit 16bit mono int 48k_16bit_modo[] = {0, 4276, 8480, 12539, 16383, 19947, 23169, 25995, 28…...

win10 下 ros + Qt 工程CMakeLists.txt
win10 下 ros Qt 工程CMakeLists.txt 系统:win10 ros: melodic Qt: 5.12.12 源码目录: D:\workspace\catkin_qt 示例代码 https://github.com/ncnynl/ros-qt.git 由于示例代码是Qt4 ,目前我是用QT5,所以CMakeLists.txt 修改如下 CMakeLists.txt #####…...

Scala中编写多线程爬虫程序并做可视化处理
目录 一、引言 二、Scala爬虫程序的实现 1、引入必要的库 2、定义爬虫类 3、可视化处理 三、案例分析:使用Scala爬取并可视化处理电影数据 1、定义爬虫类 2、实现爬虫程序的控制逻辑 3、可视化处理电影数据 四、总结 一、引言 随着互联网的快速发展&#…...

使用 huggingface_hub 镜像下载 大模型
download.py 👇 import os # 配置 hf镜像 os.environ[HF_ENDPOINT] https://hf-mirror.com# 设置保存的路径 local_dir "XXXXXX"# 设置仓库id model_id "sensenova/piccolo-large-zh"cmd f"huggingface-cli download --resume-downlo…...
路径加密(替换空格),剑指offer,力扣
目录 我们直接看题解吧: 方法: 审题目事例提示: 解题思路: 法1: 代码(法1): 法2: 代码(法2): 原题解: 【剑指Offer】2、替…...

HarmonyOS开发:UI开展前的阶段总结
前言 关于HarmonyOS,陆陆续续总结了有14篇的文章,大家可以发现,没有一篇是关于UI相关的,不是自己没有分享的打算,而是对于这些UI而言,官方都有着一系列的文档输出,如果我再一一的分享࿰…...
Linux安装Libreoffice
windos安装Libreoffice https://zh-cn.libreoffice.org/ C:\路径\LibreOffice\program\soffice.bin --help 看是否输出帮助命令 Linux安装Libreoffice 1、下载rpm包并解压https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/ 2、安装: yum install…...

如何将系统盘MBR转GPT?无损教程分享!
什么是MBR和GPT? MBR和GPT是磁盘的两种分区形式:MBR(主引导记录)和GPT(GUID分区表)。 新硬盘不能直接用来保存数据。使用前应将其初始化为MBR或GPT分区形式。但是,如果您在MBR时需…...

基于element-plus定义表单配置化
文章目录 前言一、配置化的前提二、配置的相关组件1、新建form.vue组件2、新建input.vue组件3、新建select.vue组件4、新建v-html.vue组件5、新建upload.vue组件6、新建switch.vue组件7、新建radio.vue组件8、新建checkbox.vue组件9、新建date.vue组件10、新建time-picker.vue组…...
LeetCode算法题解(贪心)|LeetCode122. 买卖股票的最佳时机 II、LeetCoed55. 跳跃游戏、LeetCode45. 跳跃游戏 II
一、LeetCode122. 买卖股票的最佳时机 II 题目链接:122. 买卖股票的最佳时机 II 题目描述: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 …...

计蒜客详解合集(2)期
目录 T1126——单词倒排 T1617——地瓜烧 T1612——蒜头君的数字游戏 T1488——旋转单词 T1461——校验信用卡号码 T1437——最大值和次大值 T1126——单词倒排 超级水的一道题,和T1122类似但更简单,分割后逆序输出即可~ 编写程序,读入…...

华为防火墙vrrp+hrp双机热备主备备份(两端为交换机)
默认上下来全两个vrrp主都是左边 工作原理: vrrp刚开机都是先initialize状态,然后切成active或standb状态。 hrp使用18514端口,且用的单播,要策略放行,由主设备发hrp心跳报文 如果设备为acitve状态时自动优先级为65…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
使用python进行图像处理—图像滤波(5)
图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值,以达到平滑(去噪)、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算,…...
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
经过前面几期的内容我们学习了很多网络安全的知识,而这期内容就涉及到了前面的第六期-RCE模块,第七期-File inclusion模块,第八期-Unsafe Filedownload模块。 什么是"遍历"呢:对学过一些开发语言的朋友来说应该知道&…...