Generate Parentheses

2023-05-16

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:


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

这题的核心在于如何约束保证最后的结果符合well-formed要求。本质而言如果我们用一个栈模拟,则每次添加一个‘(’,则入栈一个‘)’。栈空则无法加‘)’。否则可以加‘)’。也就是每一步都必须要保证‘(’的数目大于等于‘)’。最后‘(’和‘)’的数目都等于n。用l,r分别表示还需要添加的‘(’和‘)’的数目。代码如下:


class Solution(object):
    def generateParenthesis(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        if not n:
            return []
        cnt = 0 #the number of unadded )
        arr = [')','(']
        res = []
        self.generate([], n, n, res)
        return res
    def generate(self, cur, l, r, res):
        if l > r:  #非常关键
            return 
        if l == 0 and r == 0:
            res.append(''.join(cur))
            return 
        if l > 0:
            cur.append('(')
            self.generate(cur, l-1, r, res)
            cur.pop()
        if r > 0:
            cur.append(')')
            self.generate(cur, l, r-1, res)
            cur.pop()  

 

转载于:https://www.cnblogs.com/sherylwang/p/5764756.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Generate Parentheses 的相关文章

随机推荐

  • 推荐几款常用的Socks5代理软件

    一 Sockscap 荐 SocksCap是目前对网络游戏兼容性最好的代理工具之一 SocksCap32 软件是由美国 NEC USA Inc 公司出品的代理服务器第三方支持软件 拥有功能强大的 SOCKS 调度 xff0c 使用它就可以让
  • Nginx根据post参数转发请求 (OpenResty)

    最近有个需求 xff0c 需要nginx根据POST参数将请求转发到不同的后端 xff0c 调研后决定使用OpenResty xff08 Nginx 43 Lua xff09 作为代理服务器 写个小Demo location span cl
  • Windows 10访问共享时提示“过时的SMB1协议”的修复办法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 公司有台Windows XP老版本系统的文件共享服务器 xff0c 前段时间好好的能正常访问 xff0c 今天访问时突然提示 因为文件共享不安全 xff0c 所以你不能连接
  • 关于Video Src 带有 blob:http的视频如何下载的问题

    我们如果使用爬虫 xff0c 想爬取一些视频的时候 xff0c 会发现一些网站提供的视频链接打开是 404 xff1b span class hljs tag lt span class hljs name video span span
  • Wcf 双工通信的应用

    概述 双工 xff08 Duplex xff09 模式的消息交换方式体现在消息交换过程中 xff0c 参与的双方均可以向对方发送消息 基于双工MEP消息交换可以看成是多个基本模式下 xff08 比如请求 回复模式和单项模式 xff09 消息
  • Foxit PDF Reader能有效升级日文包

    Foxit Reader 原名 Foxit PDF Reader xff0c 是一款 PDF文档阅读软件 xff0c 它具有比Adobe Reader更加小巧的身材 xff0c 更加快速的速度 xff0c 以及更加丰富的插件 xff0c 完
  • JIRA学习

    Jira是Atlassian公司出品的一款事务管理软件 无论是 需求 xff0c 还是 BUG xff0c 或是 任务 xff0c 都是 事务 的一种 xff0c 所以Jira可以胜任非常多的角色 xff1a 需求管理 缺陷跟踪 任务管理等
  • python 面向对象编程

    面向对象与面向过程 参考链接 xff1a https www liaoxuefeng com wiki 0014316089557264a6b348958f449949df42a6d3a2e542c000 0014318645694388f
  • pycharm调整代码长度分割线

    1 File gt Settings gt Code Style gt Right margin columns 的值为80 xff0c 大功告成 2 具体设置的数值可以根据个人电脑的屏幕大小而定 xff0c 如果屏幕比较大可以设置的长一些
  • ppt点击文字出现图片,再次点击消失

    实现效果 xff1a 在PPT一个页面的任意位置 xff0c 单击左键 xff0c 出现图片 xff1b 在图片上 xff0c 单击左键 xff0c 图片消失 实现思路 xff1a 给图片做两个动画 xff0c 一个进入 xff0c 文字作
  • OC中APPDelegate[[UIApplication shareApplication]delegate]]Swift实现

    直接上代码 xff1a var myDelegate AppDelegate myDelegate 61 UIApplication sharedApplication delegate as AppDelegate
  • 安装好Pycharm后如何配置Python解释器简易教程

    这两天有许多Python小白加入学习群 xff0c 并且问了许多关于Pycharm基本使用的问题 xff0c 今天小编就以配置Python解释器的问题给大家简单絮叨一下 1 一般来说 xff0c 当我们启动Pycharm xff0c 如果P
  • MySQL net start mysql 发生系统错误5 解决办法

    产生的原因是权限不够 用管理员权限打开命令提示符就OK 啦 Win10解决办法 xff1a 使用快捷键win 43 x xff0c 或右击开始图标 xff0c 打开命令提示符 xff08 管理员 xff09 就解决啦
  • Docker查看远端仓库的标签工具

    背景 最近入坑了docker xff0c 比如本地想要启动一个elastic容器的话 xff0c 直接通过以下命令即可快速启动一个elasticsearch的实例 docker run d p 9200 9200 p 9300 9300 n
  • 互斥锁mutex的简单实现

    mutex一般用于为一段代码加锁 xff0c 以保证这段代码的原子性 xff08 atomic xff09 操作 xff0c 即 xff1a 要么不执行这段代码 xff0c 要么将这段代码全部执行完毕 例如 xff0c 最简单的并发冲突问题
  • Exception in thread "main" java.lang.NoClassDefFoundError: XXX

    Exception in thread 34 main 34 java lang NoClassDefFoundError XXX编译时没有报错 xff0c 一运行就不听话 网上找了一大堆 xff0c 各种解决方案都不是适合我 xff0c
  • 分享几个免费IP地址查询API接口

    1 IP地址查询接口 xff1a http apis juhe cn ip ip2addr 要先去https www juhe cn docs api 申请APPKEY 2 新浪的IP地址查询接口 xff1a http int dpool
  • 解决Cannot read property 'range' of null 错误

    为什么80 的码农都做不了架构师 xff1f gt gt gt vue工程npm run serve start dev启动时 xff0c node modules文件报 xff1a Cannot read property 39 rang
  • Gitlab Pipelines一直无法通过的临时解决办法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 新Gitlab系统是自己搭建的 xff0c 为了使用pages功能 xff0c 因为少于8 8版本貌似就不能使用 xff01 下一篇我会补充 xff0c 毕竟是转发的 xf
  • Generate Parentheses

    Given n pairs of parentheses write a function to generate all combinations of well formed parentheses For example given