Leetcode22. 括号生成

news2025/1/15 17:22:10

一、题目描述:

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

  1. 示例 1:
    • 输入:n = 3
    • 输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]
  2. 示例 2:
    • 输入:n = 1
    • 输出:[“()”]
  • 提示:
    • 1 ≤ n ≤ 8 1 \leq n \leq 8 1n8

二、解决思路和代码

1. 解决思路

  • 分析:利用深度优先搜索的算法思想

    • 考虑使用递归的方法生成字符串
      • 根据上图,递归跳出的条件有两个:
        • 左右括号用完,生成的括号有效,条件是 l = r = 0 l = r = 0 l=r=0
        • 已生成的括号中,右括号的个数大于左括号(剩余的左括号数大于右括号),括号组合无效,条件是 l > r l > r l>r
      • 当剩余的左括号的个数大于 0,在生成的括号组合中添加左括号
      • 当剩余的右括号的个数大于 0,在生成的括号组合中添加右括号

2. 代码

from typing import List
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        res = []
        self.dfs(stri='', left=n, right=n, res=res)
        return res
    
    def dfs(self, stri, left, right, res):
        if left==0 and right==0:
            res.append(stri)
            return
        if left>right: return
        if left>0: self.dfs(stri+'(', left-1, right, res)
        if right>0: self.dfs(stri+')', left, right-1, res)

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

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

相关文章

Java笔记028-集合章节练习

Java笔记028-集合章节练习编程题按要求实现:封装一个新闻类,包含标题和内容属性,提供get、set方法,重写toString方法,打印对象时只打印标题只提供一个带参构造器,实例化对象时,只初始化标题&…

【Java】Java进阶学习笔记(一)—— 面向对象(封装)

【Java】Java进阶学习笔记(一)—— 面向对象(封装)一、类中成分1、类中成分2、this关键字this() 访问构造器方法3、static关键字1. 成员变量的区分2. 成员方法的区分3. 成员变量访问语法的区分二、封装1、封装的定义封装的好处2、…

excel之古诗词打乱排序

最终效果 制作过程: 一、选择一首古诗,将正文内容连接起来,放在一个单元格中 二,由于这首诗是20字的,加工20个不重复的随机数,具体公式如下图 (写好第一行数据,拖动下拉即可) 其中…

虚拟机上安装openKylin详细步骤总结

一、创建虚拟机 首先获取操作系统安装镜像文件: 链接:https://pan.baidu.com/s/1tSuXmDk2ZILR4ieee6iImw?pwdcy47 提取码:cy47 (1-1)进入新虚拟机创建向导,选择“自定义”: (1-…

创业做校园外卖平台,该如何把自己的平台宣传出去?

如何宣传校园外卖平台?主要看平台宣传,配套宣传工具不一样! 我认为有以下几点: 1.建立以宿舍楼为基础的推广团队,依托平台分佣,并能做到每个宿舍楼的送餐和广告分发; 2.根据学生的消费习惯&a…

【带组态源码】Java物联网平台源码 Modus RTU协议 文档齐全 带移动手机端

▶ 组态功能强大、组件丰富 ▶ 组态设计功能强大:包括基础组件、消息组件、图表组件三大类 ▶ 基础组件包括:位按钮、窗口按钮、多态、图片按钮、流动、静态文本、动态变量、输入框、滑块、选择框、网格、矩形、椭圆、直线、自定义形状。 ▶ 图表组件包…

如何用Postman测试整套接口?测试流程是什么?

目录 基于postman测试接口(整套接口测试) 可以解决的问题 开启控制台 单个测试尝试 使用请求结果当参数 打印结果(JSON) 自定义可视化结果 随机参数 测试用例连接 一键测试接口集合 从swagger导入接口 自定义全局变量 总结感谢每一个认真阅读我文章的人&#xff01…

异步简单实现一人一单

本项目码云地址:https://gitee.com/flowers-bloom-is-the-sea/distributeNodeSolvePessimisticLockByRedis/tree/version3/ 项目前身:https://gitee.com/flowers-bloom-is-the-sea/distributeNodeSolvePessimisticLockByRedis/tree/version2.0/ 异步实…

java易错题锦集系列五

接口中不能有构造方法,抽象类中可以有。抽象类中构造方法作用:初始化抽象类的成员;为继承它的子类使用 定义在同一个包(package)内的类是可以不经过import而直接相互使用 final修饰的方法可以被重载 但不能被重写 从…

论文阅读:Self-Supervised Monocular Depth Estimation with Internal Feature Fusion(DIFFNet)

中文标题:基于内部特征融合的自监督单目深度估计 创新点 参照HR-Net在网络上下采样的过程中充分利用语义信息。设计了一个注意力模块处理跳接。提出了一个扩展的评估策略,其中方法可以使用基准数据中的困难的情况进行进一步测试,以一种自我…

计算机科学导论笔记(一)

一、绪论 1.1 图灵模型 Alan Turing在1937年首次提出了一种通用计算设备的设想,他设想所有的计算都能在一种特殊的机器上执行,这就是现在所说的图灵机。但图灵机只是一种数学上的描述,并不是一种真正的机器。 1.1.1 数据处理器 在讨论图灵…

X和Ku波段小尺寸无线电设计

卫星通信、雷达和信号情报(SIGINT)领域的许多航空航天和防务电子系统早就要求使用一部分或全部X和Ku频段。随着这些应用转向更加便携的平台,如无人机(UAV)和手持式无线电等,开发在X和Ku波段工作,同时仍然保持极高性能水平的新型小尺寸、低功耗…

自动化测试——读写64位操作系统的注册表

非Web程序(桌面程序)的设置一般都存在注册表中。 给这些程序做自动化测试时, 需要经常要跟注册表打交道。 通过修改注册表来修改程序的设置。 本章介绍如何利用C#程序如何操作注册表, 特别是如何操作64位操作系统的注册表。 自动…

一文介绍Doris

文章目录一、架构介绍1.名词解释2.FE(Frontend)3.BE(Backend)4.元数据结构二、存储介绍1.DataPage2.Footer信息3.index pages三、索引介绍1.Ordinal Index(一级索引)2.Short Key Index 索引3.ZoneMap Index 索引4.BloomFilter索引5.Bitmap Index 索引6.索…

tensor常用代码

1.创建一个自定义形状的tensor,元素类型为int,并为随机数 a torch.randint(1, 10, size[4,2]) # 元素为1-10之间的随机数 2.将tensor中,元素类型改为float b a.float() b a.double() 3.在tensor的最外层增加一个维度 (tensor[None]) …

FATE数据上传、读取、训练、保存

fate如何安装?本文续这篇文章。 背景 fate是一个服务,还原联邦学习,所以分client和host两种身份,一般来说用户都是client,用户想要上传自己的数据,合并他人数据最终获得一个更好的模型,所以要…

织梦文章无图自动出图配图插件支持采集

织梦文章无图自动出图配图插件的优点 1、提高文章的可读性和吸引力:插入图片可以丰富文章的内容和形式,增强读者的阅读体验和吸引力,提高文章的点击率和转化率。 2、节省时间和精力:手动添加图片需要花费大量时间和精力去寻找和…

浅谈cocos2dx渲染方式

场景的渲染 Node:visit 其作用是遍历整个场景渲染树。 部分代码如下 if(!_children.empty()) {sortAllChildren();// draw children zOrder < 0for(auto size _children.size(); i < size; i){auto node _children.at(i);if (node && node->_localZOrder…

HU4056H耐压高达28V,具有电源OVP功能的1A单节锂离子电池线性充电IC

产品概述 HU4056H是一款完整的采用恒定电流/恒定电压的高压、大电流、单节锂离子电池线性充电 IC。最高耐压可达 28V&#xff0c; 6.5V 自动过压保护&#xff0c;充电电流可达 1A。 由于采用了内部 PMOSFET 架构&#xff0c;加上防倒充电路&#xff0c;所以不需要外部隔离二…

【博学谷学习记录】超强总结,用心分享丨人工智能 机器学习 集成学习错题总结

目录题目1&#xff1a;下面关于提升树的说法哪个是正确的&#xff1f;题目2&#xff1a;下面关于随机森林和梯度提升集成方法的说法哪个是正确的&#xff1f;集成学习主要有哪几种框架&#xff1f;工作过程是&#xff1f;题目1&#xff1a;下面关于提升树的说法哪个是正确的&am…