首页 > 编程语言 >22.给定 n 对括号,实现一个算法生成所有可能的正确匹配的括号组合

22.给定 n 对括号,实现一个算法生成所有可能的正确匹配的括号组合

时间:2024-08-18 16:23:54浏览次数:10  
标签:匹配 22 组合 复杂度 生成 括号 给定

22. Generate Parentheses

题目

给定 n 对括号,编写一个函数生成所有可能的正确匹配的括号组合。

例如,当 n = 3 时,可能的组合集合为:

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

题目大意

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

解题思路

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

代码实现

package leetcode

func generatePar

标签:匹配,22,组合,复杂度,生成,括号,给定
From: https://blog.csdn.net/yonggeit/article/details/141117045

相关文章

  • 022、Vue3+TypeScript基础,使用typescript定义并暴露结构,主页面向子页面传递结构数据
    01、新建一个index.ts文件,代码如下://定义一个接口,用于限制person对象的具体属性exportinterfacePersonInter{id:string;name:string;age:number;}exporttypePersons=Array<PersonInter>;02、App.vue代码如下:<template><divclass="app">......
  • 【动态规划、dp】[CSP-J 2022] 上升点列 题解
    题目描述在一个二维平面内,给定nnn个整数点(xi......
  • Huawei Matebook e 2022 安装 archlinux 双系统
    本文同步发布于我的网站安装之前wifi名称修改为英文+数字的,以防之后没法联网准备好U盘并使用GPT分区表写入最新的arch镜像。基础安装开机按F2进入UEFI/BIOS设置,将SecureBoot(安全启动)关闭,按F10保存重启。开机按F12进入启动菜单,选择U盘启动。先按e在引......
  • 《软件测试》黑书全22章笔记总结——软测新手小白必读
    一、软件测试综述1.第一章:软件测试的背景1.1软件缺陷只有至少满足下列5个规则之一才称为发生了一个软件缺陷软件未实现产品说明书要求的功能软件出现了产品说明书指明不应该出现的错误软件实现了产品说明书未提到的功能软件未实现产品说明书虽未明确提及但应该实现的......
  • C语言程序设计-[22] 数组应用
    1、简单插入排序算法根据以上分析,代码与结果如下:#include"stdio.h"intmain(){ intcount,j,x,a[101];scanf("%d",&x);if(x<=0) return;else a[1]=x;count=1;scanf("%d",&x);while(x>0){ ......
  • [赛记] 暑假集训CSP提高模拟22 23
    连通块66pts老套路,删边改加边;但改完以后不知道怎么求最长路径了,当时也想到了维护直径,但不知道咋干;具体地,用并查集维护连通性,每次合并时需要维护新的直径,不难发现,新的直径的两个端点一定在原来的两个直径的四个端点中选;于是只有六种情况,枚举一下即可;我们要直径有啥用呢?当我们......
  • 【漫谈C语言和嵌入式004】深入理解RS232、RS422和RS485:嵌入式系统中的串行通信协议
            在嵌入式系统设计中,串行通信协议是设备间数据传输的重要方式。其中,RS232、RS422和RS485是三种常用的标准。这些协议不仅在工业控制、仪器仪表、网络通信等领域得到广泛应用,也在许多嵌入式系统项目中扮演着重要角色。在本文中,我们将深入探讨这三种串行通信标准......
  • VS2022实用调试技巧超详解
    文章目录1.什么是bug2.什么是调试(debug)3.Debug和Release4.VS调试快捷键4.1环境准备4.2调试快捷键5.监视和内存观察5.1监视5.2内存6.调试举例17.调试举例29.编程常见错误归类9.1编译型错误9.2链接型错误9.3运行时错误本文章以VS2022为例讲解调......
  • 2024-08-17:用go语言,给定一个从0开始的整数数组nums和一个整数k, 每次操作可以删除数组
    2024-08-17:用go语言,给定一个从0开始的整数数组nums和一个整数k,每次操作可以删除数组中的最小元素。你的目标是通过这些操作,使得数组中的所有元素都大于或等于k。请计算出实现这个目标所需的最少操作次数。输入:nums=[2,11,10,1,3],k=10。输出:3。解释:第一次操作后,nums变......
  • 虚拟机(ubuntu22.04)安装Anaconda
    下载安装包前往https://repo.anaconda.com/archive/,下载对应的安装包,这里我们选择的是Anaconda3-2024.06-1-Linux-x86_64.sh这个安装脚本下载,大概1个G也可以直接在终端中输入wgethttps://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh这样也能直接下载......