电话号码的字母组合(C++实现)

电话号码的字母组合

  • 题目
  • 代码
  • 思路及代码讲解
  • 代码(有注释版)

题目


电话号码的字母组合


在这里插入图片描述

代码

class Solution {const char* numsStrArr[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public:void Combine(const string& digits, int i,string CombineStr,vector<string>& ret ){if(i==digits.size()){ret.push_back(CombineStr);return ;}int num =digits[i]-'0';string str =numsStrArr[num];for(auto e:str){Combine(digits,i+1,CombineStr+e,ret);}}vector<string> letterCombinations(string digits) {vector<string> ret;if(digits==""){return ret;}string str;Combine(digits,0,str,ret);return ret;};};

思路及代码讲解

  1. 定义一个函数letterCombinations,用于生成给定数字字符串的所有可能的字母组合。

  2. 在类中定义一个私有成员变量numsStrArr,它是一个包含了数字0到9的字符串数组,每个数字对应一组可能的字母。例如,numsStrArr[2]对应的是"abc",numsStrArr[3]对应的是"def",以此类推。

  3. 接下来是函数Combine,它是一个递归函数,用于生成数字字符串的所有可能的字母组合。参数digits是输入的数字字符串,参数i表示当前处理的数字索引,参数CombineStr表示已经组合好的字母字符串,参数ret是存储结果的向量。

  4. 函数首先检查递归结束的条件,即当i等于digits的长度时,将已经组合好的字符串CombineStr加入到结果向量ret中,并返回。

  5. 接着,函数根据当前数字索引i从digits中获取数字,并在numsStrArr中找到对应的字母字符串str。

  6. 然后,函数使用一个循环遍历str中的每个字母,并调用自身递归地处理下一个数字索引i+1,并将当前字母添加到已经组合好的字符串CombineStr后面。

  7. 最后,在主函数letterCombinations中,首先创建一个空的结果向量ret。

  8. 然后,检查输入的数字字符串digits是否为空,如果为空,则直接返回空的结果向量。

  9. 接下来,创建一个空字符串str,并调用Combine函数开始递归生成所有可能的字母组合。

  10. 最后,将结果向量ret返回作为函数的输出。


代码(有注释版)

class Solution {const char* numsStrArr[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};// 数字对应的字母组合数组public:// 递归生成数字字符串的所有可能的字母组合void Combine(const string& digits, int i, string CombineStr, vector<string>& ret ) {// 递归结束条件:已经处理完所有数字if(i==digits.size()) {// 将已经组合好的字符串加入结果向量ret.push_back(CombineStr);return ;}int num =digits[i]-'0';// 获取当前数字对应的字母字符串string str =numsStrArr[num];// 遍历当前数字对应的字母字符串中的每个字母for(auto e:str) {// 递归处理下一个数字索引,并将当前字母添加到已经组合好的字符串后面Combine(digits,i+1,CombineStr+e,ret);}}// 生成数字字符串的所有可能的字母组合vector<string> letterCombinations(string digits) {vector<string> ret;if(digits=="") {return ret; // 如果输入字符串为空,则直接返回空结果向量}string str;// 调用递归函数生成所有可能的字母组合Combine(digits, 0, str, ret);return ret; // 返回结果向量};
};

(本题完)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/189067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ringboot-cve_2021_21234:latestSpring Boot 目录遍历 (CVE-2021-21234)漏洞复现

Spring Boot 目录遍历 &#xff08;CVE-2021-21234&#xff09;漏洞复现 Spring-boot-actuator-logview 0.2.13之前版本存在路径遍历漏洞&#xff0c;攻击者可通过该缺陷读取系统任意文件。 名称: Spring Boot 目录遍历 &#xff08;CVE-2021-21234&#xff09; 描述: Sprin…

Kubernetes(K8s)Pod控制器详解-06

Pod控制器详解 Pod控制器介绍 Pod是kubernetes的最小管理单元&#xff0c;在kubernetes中&#xff0c;按照pod的创建方式可以将其分为两类&#xff1a; 自主式pod&#xff1a;kubernetes直接创建出来的Pod&#xff0c;这种pod删除后就没有了&#xff0c;也不会重建 控制器创建…

【MySQL】MySQL安装 环境初始化

MySQL安装 MYSQL官网 安装完成后,傻瓜下一步即可 配置一下环境变量即可 (1) 初始化MySQL, 管理员身份运行 mysqld --initialize-insecure(2) 注册 mysqld mysqld -install# 如果记录以前的版本执行下面指令 mysqld -remove(3) 启动MySQL服务 // 启动mysql服务 net start …

adb环境搭建(adb下载与安装)

文章目录 前言一、adb下载二、adb安装1.将下载的安装包解压缩2.将解压缩后的文件夹放到自己想存放的目录下&#xff08;不要放到带有中文的目录下&#xff09;——我这放到D盘根目录下3.配置环境变量3.1.鼠标放到 "此电脑"→鼠标右击→选择属性3.2.点击 "高级系…

pycharm closing卡住 解决办法

别处看到的&#xff0c;亲测有效 1.升级 pycharm 到 2023.3 2.pycharm 主页 Help -> Find Action -> 输入 Registry -> 禁用ide.await.scope.completion PyCharm 2023.1.2版本关闭后一直显示正在关闭项目 - 知乎

matlab基于线性二次调节器(LQR)法实现机器人路径规划可变轨迹跟踪

1、内容简介 略 可以交流、咨询、答疑 2、内容说明 基于线性二次调节器(LQR)法实现机器人路径规划可变轨迹跟踪 3、仿真分析 略 load path.mat %% 轨迹处理 % 定义参考轨迹 refPos_x path(:,1); refPos_y path(:,2); refPos [refPos_x, refPos_y];% 计算航向角和曲率 …

java设计模式学习之【对象池模式】

文章目录 引言对象池模式简介定义与用途实现方式 使用场景优势与劣势对象池模式在Spring中的应用JDBC对象池示例代码地址小结 引言 对象池模式在资源管理和性能优化方面发挥着重要作用。这种模式通过重复使用已经初始化的对象&#xff0c;而不是频繁创建和销毁&#xff0c;减少…

解决tailwind与element样式冲突

解决tailwind与element样式冲突 一、问题描述1.环境&#xff1a;2.问题3.原因 二、解决方法1.在tailwind.config.js中关闭默认样式2.拷贝Tailwind默认样式修改并引用3.在main.js中引用preflight.css 一、问题描述 1.环境&#xff1a; TailwindCSS Element plus 2.问题 el-…

现代 C++ 函数式编程指南

现代 C 函数式编程指南 什么是 柯里化 &#xff08;Curry&#xff09;什么是 部分应用 &#xff08;Partial Application&#xff09; 二元函数 &#xff08;Partial Application&#xff09;参数排序 &#xff08;Partial Application&#xff09; 应用场景 计算碳衰减周期求年…

基于Java SSM框架实现汽车在线销售系统项目【项目源码+论文说明】

基于java的SSM框架实现汽车在线销售系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&a…

quick_快应用_广告接入

目录 接入厂商广告oppo广商接入广告banner广告信息流广告[1] 组件封装[2] 渲染数据[3] 测试[4] 样式调整[5] 加载失败[6] 预加载[7] 应用要素信息 接入厂商广告 广告接口 [1] 接口声明 {"name":"service.ad"}[2] 导入模块 import ad from service.ad 或 c…

[FUNC]判断窗口在哪一个屏幕上

#Requires AutoHotkey v2.0#z:: { ToolTip "Notepad窗口所在显示屏是&#xff1a;" GetMonitor() } GetMonitor() {CoordMode("Mouse", "Screen"); MouseGetPos &mx, &myWinGetPos &mx, &my,,,"ahk_class Notepad"…

【小布_ORACLE笔记】Part11-6 RMAN Backups

【小布_ORACLE笔记】Part11-6 RMAN Backups 1.track文件的作用 当做差异性备份时&#xff0c;server process对应的RMAN客户端的server process就不用去每个块每个块的检查&#xff0c;只要到trackfile 里面去读一下&#xff0c;看哪个块改变了就直接把哪个块备份下来&#x…

matlab 混沌动力学行为-分岔图-李雅普指数等

1、内容简介 略 24-可以交流、咨询、答疑 2、内容说明 混沌动力学行为-分岔图-李雅普指数等 包含各种类型的混沌模型求解&#xff0c;包含其分叉图、李雅普指数等 混沌、分叉图、李雅普指数 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/…

无限移动的风景 css3 动画 鼠标移入暂停

<style>*{margin:0;padding:0;/* box-sizing: border-box; */}ul{list-style: none;}#nav{width:900px;height:100px;border:2px solid rgb(70, 69, 69);margin:100px auto; overflow: hidden;}#nav ul{animation:moving 5s linear infinite;width:200%; /*怎么模拟动画…

【已解决】Cannot find project Scala library 2.11.8 for module XXX

问题描述 在 flink 示例程序调试过程中&#xff0c;reload project 报错 Cannot find project Scala library 2.11.8 for module HbasePrint 报错如下图所示&#xff1a; 问题解决 经过搜索&#xff0c;初步判定是 pom 文件中 Scala 版本配置和项目中实际使用的版本不一致导…

在 SQL Server 中备份和恢复数据库的最佳方法

在SQL Server中&#xff0c;创建备份和执行还原操作对于确保数据完整性、灾难恢复和数据库维护至关重要。以下是备份和恢复过程的概述&#xff1a; 方法 1. 使用 SQL Server Management Studio (SSMS) 备份和还原数据库 按照 SSMS 步骤备份 SQL 数据库 打开 SSMS 并连接到您…

什么是OV SSL证书?

OV SSL证书是组织验证SSL证书的缩写&#xff0c;是三个SSL验证级别之一的名称。 OV是指实名类型的SSL证书&#xff0c;这个实名其实只要证明发布者身份就可以签发&#xff0c;无论是个人还是企业都可以进行申请。 SSL证书大家都知道就是用于网站地址的http改成https加密协议的…

Redis部署-主从模式

目录 单点问题 主从模式 解析主从模式 配置redis主从模式 info replication命令查看复制相关的状态 断开复制关系 安全性 只读 传输延迟 拓扑结构 数据同步psync replicationid offset psync运行流程 全量复制流程 无硬盘模式 部分复制流程 积压缓冲区 实时复…

如何生成纯文本的目录树

参考资料&#xff1a; https://ascii-tree-generator.com/ 无需多言&#xff0c;感谢这些前辈的智慧。界面如下&#xff1a;