括号生成(回溯+剪枝)

22. 括号生成 - 力扣(LeetCode)

题目描述

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

样例输入

示例 1:

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1
输出:["()"]

提示:

  • 1 <= n <= 8

如下图,当n=2时,每种可能的情况都有4个字符,使用递归遍历出所有可能的情况:

剪去递归过程中不符合题意的条件,可以看出以下情况,应当进行剪枝

  • 左括号数量<右括号数量
  • 左括号数量>n

而当路径收集过程中path.size(),也就是最终的结果等于2n时,应该进行收集

题解

class Solution {
private:string path;vector<string> res;void backing(int n,int l,int r){if(l>n || l<r) return;if(path.size()==2*n){res.push_back(path);return;}path+='(';backing(n,l+1,r);path.pop_back();path+=')';backing(n,l,r+1);path.pop_back();}
public:vector<string> generateParenthesis(int n) {backing(n,0,0);return res;}
};

class Solution {
private:vector<string> res;void backing(string path,int n,int l,int r){if(l>n || l<r) return;if(path.size()==2*n){res.push_back(path);return;}backing(path+'(',n,l+1,r);backing(path+')',n,l,r+1);}
public:vector<string> generateParenthesis(int n) {backing("",n,0,0);return res;}
};

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

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

相关文章

Java毕业设计 基于SSM新闻管理系统

Java毕业设计 基于SSM新闻管理系统 SSM jsp 新闻管理系统 功能介绍 用户&#xff1a;首页 图片轮播 查询 登录 注册 新闻正文 评论 广告 社会新闻 天下新闻 娱乐新闻 个人中心 个人收藏 管理员&#xff1a;登录 用户管理 新闻管理 新闻类型管理 角色&#xff1a;用户 管理员…

鸿蒙OS开发实例:【瀑布流式图片浏览】

介绍 瀑布流式展示图片文字&#xff0c;在当前产品设计中已非常常见&#xff0c;本篇将介绍关于WaterFlow的图片浏览场景&#xff0c;顺便集成Video控件&#xff0c;以提高实践的趣味性 准备 请参照[官方指导]&#xff0c;创建一个Demo工程&#xff0c;选择Stage模型熟读Har…

在视频号上开小店,这些细节内容你知道吗?过来人经验分享!

大家好&#xff0c;我是电商小布。 现在有越来越多的小伙伴&#xff0c;看到了视频号小店的内部的发展机会&#xff0c;纷纷想要加入这个市场。 但是不了解这个项目&#xff0c;在开店运营的时候都是无处下手的。 这其中的一些细节内容一定要提前的了解清楚。 接下来&#…

vue3使用UEditorPlus 、后端配置、上传图片等处理

前端安装 vue3安装vue-ueditor-wrap // vue-ueditor-wrap v3 仅支持 Vue 3 npm i vue-ueditor-wrap3.x -S // or yarn add vue-ueditor-wrap3.x 下载 UEditorPlus 仓库地址 把dist文件复制到vue3项目中的public下&#xff0c;重命名为UEditorPlus UEditorPlus文档 在main.…

从电荷角度理解开关电容中的电荷守恒

目录 一些铺垫电容的电荷量的解释电荷流入流出对节点电压的影响 从电荷角度理解开关电容加法器中的电荷守恒以开关电容积分器为例说明什么样的节点是电荷守恒 一些铺垫 电容的电荷量的解释 对于一个1F的电容&#xff0c;当它的压差为1V时&#xff0c;它所携带的电荷量是QCU1库…

霸榜京东数据库图书热卖榜!《图数据库:理论与实践》热销中

《图数据库&#xff1a;理论与实践》自2月上市以来&#xff0c;受到了数据库行业的广泛关注与热烈支持&#xff0c;问世两周便销量破千本&#xff01;近期还荣登京东 “数据库图书榜”热卖榜第二名&#xff0c;广获好评&#xff01; 在此&#xff0c;真挚的感谢各位读者的认可…

掌握html这一篇就够了

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、HTML是什么&#xff1f;二、基础标签6个标题标签6级标题其他基础标签 8种文本标签6种表格标签4种表格标签基础标签修饰 4种媒体标签a标签img:图片audio&…

持续交付/持续部署流程主要系统构成(CD)

目录 一、概述 二、持续交付/持续部署主要构成 2.1 镜像容器管理系统 2.1.1 镜像分类 2.1.1.1 磁盘镜像 2.1.1.2 镜像容器 2.1.1.2.1 镜像容器分层管理示意图 2.1.2 镜像容器管理系统软件 2.2 配置管理系统 2.2.1 配置管理系统的功能 2.2.1.1 管理操作系统层、中间件…

云原生(七)、Kubernetes初学 + 裸机搭建k8s集群

Kubernetes简介 Kubernetes&#xff08;通常简称为K8s&#xff09;是一个开源的容器编排平台&#xff0c;最初由Google设计和开发&#xff0c;现在由Cloud Native Computing Foundation&#xff08;CNCF&#xff09;维护。它旨在简化容器化应用程序的部署、扩展和管理。 Kube…

一周学会Django5 Python Web开发-Django5模型定义

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计41条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

黑马点评(Redis实战)项目笔记【10万字!超详细!收藏!】

Redis基础篇 续篇Redis基础篇 知识点参考博客 前言&#xff1a;本文首次完成于语雀文档&#xff0c;发布至个人CSDN分享&#xff0c;全篇内容4万余字&#xff0c;若对您有帮助希望点个赞与收藏&#xff01; 由于缩进格式不兼容等问题&#xff0c;若影响您的观看体验&#xff0c…

‘bash‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

问题描述 运行命令的时候报错&#xff1a;bash 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 解决方案 在anaconda中执行以下命令即可&#xff1a; conda install m2-base 安装完毕后&#xff0c;再运行bash的命令就可以了。