使用 vector + 递归 解决问题

news2024/11/24 14:04:25

在这里插入图片描述

class Solution 
{
	const char* To[10] = { "","", "abc", "def", "ghi",
		                       "jkl", "mno", "pqrs","tuv", "wxyz" };
	//常量字符串初始化string 注意此非定义(缺省值)--实例化对象时初始化
	//string numToStr[10] = { "","", "abc", "def", "ghi",
	//						   "jkl", "mno", "pqrs","tuv", "wxyz" };
public:
	void generate(string digit, int i, vector<string>& Vs, string str)
	{
		if (i == digit.size())  //如果本次i == size 
			                    //表明上次的i已经到达一个字符串的末字符
		{
			Vs.push_back(str);  //转化完毕--保存
			return;             //返回上一次递归
		}

		int n = digit[i] - '0'; //字符变数字
		string s = To[n];       //数字对应的字符串

		for (auto ch : s)
		{
			generate(digit, i + 1, Vs, str + ch);
		}
	}
	vector<string> letterCombinations(string digit) 
	{
		vector<string> Vs;
		string s;

		if (digit.empty())
			return Vs;
		
		//此时传的 Vs s 均为空对象
		// 
		//Vs的类型是vector<string>
	    //Vs用来存储多个已转化完毕的字符串的
		//
		//s的类型是string
		//s用来存储每一次转化完毕的字符串
		generate(digit, 0,Vs, s);
		return Vs;
	}
};

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

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

相关文章

收好这5个SVG编辑器,轻松实现高效创作

随着设计工作的不断发展&#xff0c;对SVG图形的需求也逐渐增加&#xff0c;SVG编辑器就随之诞生。可市面上的SVG编辑质量参差不齐&#xff0c;设计师无法第一时间找到适合自己的&#xff0c;于是本文就收集整理了5款相对来说比较好用的SVG编辑器为设计师们推荐&#xff0c;一起…

java项目之个人网站(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的个人网站。技术交流和部署相关看文章末尾&#xff01; 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&#xf…

golang macaron静态资源访问配置

1、本地文件目录如下&#xff1a; 2、macaron配置 package mainimport ("log""net/http""gopkg.in/macaron.v1" )func myHandler(ctx *macaron.Context) string {return "the request path is: " ctx.Req.RequestURI }func main() …

基于linux下的高并发服务器开发(第一章)- Makefile(2)1.11

03 / 工作原理 ◼ 命令在执行之前&#xff0c;需要先检查规则中的依赖是否存在  如果存在&#xff0c;执行命令  如果不存在&#xff0c;向下检查其它的规则&#xff0c;检查有没有一个规则是用来生成这个依赖的&#xff0c;如 果找到了&#xff0c;则执行该规则中…

PowerShell 报错:因为在此系统上禁止运行脚本。有关详细信息

PowerShell 报错&#xff1a;因为在此系统上禁止运行脚本。有关详细信息 Import-Module : 无法加载文件 D:\\Documents\WindowsPowerShell\Modules\posh-git\1.1.0\posh-git.psm1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.…

k8s 查看程序日志输出

总是和k8s大交道&#xff0c;把相关的命令也学习一下 查看程序日志输出&#xff1a; kubectl logs -f ce202307130100024-gy-decision-xkygl-64f795ff7b-mtr67 --tail1000 不重定向的情况下&#xff0c;可以把多进程下的日志都输出出来。挺好用的 kubectl logs -f pod --tailxx…

稳定币成关键指标,DeFi蓝筹拥抱RWA!下轮牛市会由什么叙事掀起?

从上海升级、BRC20、Meme 乃至老调重弹的减半叙事&#xff0c;每一次热炒都会激起新的市场关注。上半年&#xff0c;稳定币市场经历了一波格局调整&#xff0c;不少 DeFi 项目也出现了一些引人注目的叙事。下轮牛市&#xff0c;会是新一轮“DeFi盛夏”吗&#xff1f; 作为一个半…

如何编写测试用例

用例的五个构成元素&#xff1a; 下面从这五个元素的角度&#xff0c;去剖析如何编写测试用例 用例标题 用例标题就是测试点名称。用例标题是用来说明这个用例的测试目的的&#xff0c;好的用例标题是别人看完你这个用例标题后就知道你这个用例是测什么的。但并不是标题越详…

(自动机)+(卡常)+(前缀和)

edu151 C. Strong Password 样例&#xff1a; s123412341234 m2 s11234 s24321nt[i][j]:有了j以后找下一个数的位置的坐标。void solve() {cin>>s;ll lens.size();vector<array<ll,10>>nt(len1);nt[len].fill(len1);for(int ilen-1;i>0;i--){nt[i]nt[i1]…

js每隔两条或者几条数据,则就插入(新增)一条数据

js每隔两条(自定义条数)数据&#xff0c;则添加一个空的 item&#xff08;这个也可以新增你指定的数据&#xff09;,但是最后一条则不需要新增条数 let temp [] // 你需要处理的原数据 // 新的数组 const newData []for (let i 0; i < temp.length; i) {// 将原始数据添…

Vue3 使用存储库Pinia(state)

一、创建state import { defineStore } from "pinia"; export const useStore defineStore(main, {state() {return {name: 张三,age:26 }} })二、引用store.js import {useStore} from "../store/store" // 引入store const store useStore()三、html…

Flutter底部导航BottomNavigationBar

Flutter底部导航BottomNavigationBar 主要代码&#xff1a; bottomNavigationBar: BottomNavigationBar(//选中菜单颜色fixedColor: Colors.red,//图标大小&#xff0c;默认24.0iconSize: 30,//第几个菜单选中currentIndex: currentIndex,//当item数量大于3个时需要设置type属…

线性回归模型(Linear regression)

- 回归问题的标记如下 【假设可以写成h&#xff0c;也可以写成函数f】 - 工作方式 这就是一个监督学习算法的工作方式&#xff0c;我们可以看到这里有我们的训练集&#xff08;房屋平米数x&#xff0c;房屋价格y&#xff09; &#xff0c;我们把它喂给我们的学习算法&#xf…

css3提供的网页布局

css3提供的网页布局 弹性盒子模型&#xff08;flex box&#xff09;&#xff1a; 设置成弹性盒子 默认横着排放&#xff08;div也是&#xff09; 当子盒子给的宽度过大&#xff0c;总的子盒子宽度超过父级盒子&#xff0c;会自动适配&#xff0c;计算整个盒子父级的大小&#…

MMTracking目标跟踪环境搭建(一)

1、环境搭建 创建conda虚拟环境并激活。 conda create -n mmtrack python3.8 -y conda activate mmtrack 按照官方说明安装 PyTorch 和 torchvision 可以通过指定版本号切换到其他版本。 #如果网不好&#xff0c;可以这样安装 pip3 install torch1.8.2cu102 torchvision0.9…

Vue3 使用存储库Pinia(创建)

前言 使用vue编写项目时&#xff0c;经常用到组件传值&#xff0c;比如父传子、子传父、跨组件传值等&#xff0c;如果项目体量不大的情况这种方式完全够用&#xff0c;但如果项目大&#xff0c;内容丰富&#xff0c;那我们就需要用到状态管理工具——Pinia 官方文档 一、什么…

python优化库scipy.optimize测试(notebook版本)

代码链接notebook 数据准备 使用一个混合高斯分布作为测试&#xff08;两个均值不同的高斯分布相加&#xff09;&#xff0c;存在两个极值点(-1,-1)和(1,1) # 二维正态分布生成函数 def gaussian2d(x, y, x_mean, y_mean, x_std, y_std):return np.exp(-((x - x_mean) ** 2 …

Linux上安装jdk8环境

Linux上安装jdk8环境 一、Jdk8环境准备二、开始安装1. 创建压缩包位置2. 上传压缩包3. 解压压缩包4. 配置环境变量5. 查看安装版本 一、Jdk8环境准备 java8安装包下载可参考这篇文章&#xff1a;https://blog.csdn.net/qq_39939541/article/details/128065776 二、开始安装 …

1、Redis入门与应用

Redis入门与应用 Redis的技术全景 Redis一个开源的基于键值对&#xff08;Key-Value&#xff09;NoSQL数据库。使用ANSI C语言编写、支持网络、基于内存但支持持久化。性能优秀&#xff0c;并提供多种语言的API。 我们要首先理解一点&#xff0c;我们把Redis称为KV数据库&am…

Microsoft Update Assistant导致 MAC 电脑内存占用过高解决方案

目录 问题: 排查原因: 解决方案: 问题: 一直很苦恼,每次开机隔会发下电脑内存就 100%了,这次找了下原因,也记录下. 排查原因: 通过 mac 自带的活动监视器,发现居然是Microsoft Update Assistant它导致的 解决方案: 那这样就简单了,这个应该是 word,execl 的一个自动更新程序…