首页 > 其他分享 >【刷题笔记】22. Generate Parentheses

【刷题笔记】22. Generate Parentheses

时间:2023-08-15 13:32:44浏览次数:44  
标签:Parentheses string 22 rindex res str lindex findGenerateParenthesis Generate

题目

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]

题目大意

给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。

解题思路

  • 这道题乍一看需要判断括号是否匹配的问题,如果真的判断了,那时间复杂度就到 O(n * 2^n)了,虽然也可以 AC,但是时间复杂度巨高。
  • 这道题实际上不需要判断括号是否匹配的问题。因为在 DFS 回溯的过程中,会让 () 成对的匹配上的。

参考代码

package leetcode

func generateParenthesis(n int) []string {
	if n == 0 {
		return []string{}
	}
	res := []string{}
	findGenerateParenthesis(n, n, "", &res)
	return res
}

func findGenerateParenthesis(lindex, rindex int, str string, res *[]string) {
	if lindex == 0 && rindex == 0 {
		*res = append(*res, str)
		return
	}
	if lindex > 0 {
		findGenerateParenthesis(lindex-1, rindex, str+"(", res)
	}
	if rindex > 0 && lindex < rindex {
		findGenerateParenthesis(lindex, rindex-1, str+")", res)
	}
}

标签:Parentheses,string,22,rindex,res,str,lindex,findGenerateParenthesis,Generate
From: https://blog.51cto.com/u_16110811/7087647

相关文章

  • AI最新版安装 AI2022中文汉化下载 安装激活步骤
    ai2023新版本和上个版本进行比较的话,增加了很多新的功能,当然一如既往地对以前的部分功能进行了优化和改进。比如现在Intertwine功能可以使对象部分重叠,我们在Illustrator与InDesign之间粘贴文本时可以保留格式,并且改进了放置多个链接文件的性能,这些功能的改动可以让软件的功能更加......
  • Android22.3.1创建项目
    一、创建传统Java语言项目重点:EmptyActivity不能选择java.步骤一:步骤二:二、GradleBuild速度慢修改pluginManagement{repositories{google()mavenCentral()gradlePluginPortal()}}dependencyResolutionManagement{reposito......
  • 议题预告 | Pulsar Summit Asia 2022:Day 2 - 英文演讲
    关于PulsarSummitPulsarSummit是ApachePulsar社区年度盛会,它将分布在世界各地的ApachePulsar项目Contributor、Committer和各企业CTO/CIO、开发者、架构师、数据科学家,以及消息和流计算社区的精英召集在一起。于此盛会,大家分享实践经验、交流想法、探讨关于Pulsar项......
  • 【字节跳动】9-22秋招测试开发一面面经
    作者:洛枫、1、接口如何保证幂等2、数据库索引种类按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。按物理存储分类可分为:聚簇索引、二级索引(辅助索引)。按字段特性分类可分为:主键索引、普通索引、前缀索引。按字段个数分类可分为:单列索引、联合索引(复合索引、组合......
  • [UUCTF 2022 新生赛]ez_upload
    [UUCTF2022新生赛]ez_upload题目来源:nssctf题目类型:web涉及考点:文件上传1.题目给了一个上传入口,直接传muma.php试试一句话木马为<scriptlanguage="php">eval($_POST['r00ts']);</script>回显如下:换成muma.jpg试试:上传成功,再上传.htaccess文件进行解析,但是上传失......
  • 模数转换器(ADC)AD7674ASTZRL、AD7622BCPZ适用于高动态数据采集
    一、AD7674是一款18位、800MSPS、电荷再分配、逐次逼近型寄存器(SAR)全差分模数转换器(ADC),采用5V单电源供电。该器件内置一个18位高速采样ADC、一个内部转换时钟、一个内部基准电压缓冲、纠错电路,以及串行和并行系统接口。器件优势:1、高分辨率、高吞吐量。AD7674是一款800kSPS......
  • 【专题】2022母婴行业洞察报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33430我国出生人口数量在2022年为956万人,比去年减少了10%。多种因素影响了这一趋势,包括育龄人口减少、生育观念改变以及婚育年龄推迟。然而,与此同时,由于母婴人群消费水平不断提高,以及精细化喂养逐渐成为育儿的主流方式,我国母婴市场产业规模持续增长......
  • 【专题】2022年母婴行业内容营销研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33430我国出生人口数量在2022年为956万人,比去年减少了10%。多种因素影响了这一趋势,包括育龄人口减少、生育观念改变以及婚育年龄推迟。然而,与此同时,由于母婴人群消费水平不断提高,以及精细化喂养逐渐成为育儿的主流方式,我国母婴市场产业规模持续增长......
  • 【专题】2022年中国母婴群体消费决策趋势研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33430我国出生人口数量在2022年为956万人,比去年减少了10%。多种因素影响了这一趋势,包括育龄人口减少、生育观念改变以及婚育年龄推迟。然而,与此同时,由于母婴人群消费水平不断提高,以及精细化喂养逐渐成为育儿的主流方式,我国母婴市场产业规模持续增长......
  • 【专题】2022年中国母婴行业研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33430我国出生人口数量在2022年为956万人,比去年减少了10%。多种因素影响了这一趋势,包括育龄人口减少、生育观念改变以及婚育年龄推迟。然而,与此同时,由于母婴人群消费水平不断提高,以及精细化喂养逐渐成为育儿的主流方式,我国母婴市场产业规模持续增长......