首页 > 其他分享 >22. 括号生成

22. 括号生成

时间:2023-09-19 22:02:34浏览次数:23  
标签:22 int dfs 生成 括号 ans path open

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

 

示例 1:

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

示例 2:

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

 

提示:

  • 1 <= n <= 8
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        m = n * 2  # 括号长度
        ans = []
        path = [''] * m  # 所有括号长度都是一样的 m
        # open=左括号个数,i-open=右括号个数
        def dfs(i: int, open: int) -> None:
            if i == m:  # 括号构造完毕
                ans.append(''.join(path))  # 加入答案
                return
            if open < n:  # 可以填左括号
                path[i] = '('  # 直接覆盖
                dfs(i + 1, open + 1)  # 多了一个左括号
            if i - open < open:  # 可以填右括号
                path[i] = ')'  # 直接覆盖
                dfs(i + 1, open)
        dfs(0, 0)
        return ans

标签:22,int,dfs,生成,括号,ans,path,open
From: https://blog.51cto.com/u_16040716/7529735

相关文章

  • HNU个人项目互评:中小学数学卷子自动生成程序
    一、功能测试1.登录功能命令行输入用户名与密码,当用户名与密码都正确时,显示当前为XX出题 正常输入时功能正常,但是当只输入用户名时发生了异常,应该是没有考虑只输入一个(没有测试bug呀!)Stringstr[]=in.nextLine().split("\\s+");nuser.setName(str[0]);......
  • webman:生成图形验证码(v1.5.7)
    一,官方文档地址:1,文档https://www.workerman.net/doc/webman/components/captcha.html2,用到的库项目代码地址:https://github.com/webman-php/captcha二,安装库:1,用composer安装liuhongdi@lhdpc:/data/webman/imageadmin$composerrequirewebman/captcha2,查看所......
  • HNU个人项目中小学数学卷子自动生成程序互评
    一、简介本博客是对结对编程队友代码的分析与总结,代码使用语言为JAVA。完成情况:很好的实现了项目的需求,功能完整。同时每个页面的提示信息都比较完整,在不需要他人协助的情况下,可以根据屏幕上的提示信息进行操作,如果用户输入不正确,系统会出现指示,显示正确输入格式,用户可根据提示......
  • Windows server 2022安装配置——WSL2 访问
    从局域网访问wsl2首先必须得知道这两个ip的含义。在windows下执行wslhostname-i 命令,是通过WSL2安装的Linux分发版IP地址(WSL2VM的地址)在linux子系统下执行cat/etc/resolv.conf 命令,是表示从WSL2子系统看到的WINDOWS系统的IP地址(WSL2VM)WSL2......
  • 中小学数学卷子生成程序-个人项目互评
    一、项目需求用户:小学、初中和高中数学老师。功能:命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户......
  • 为什么我的 ubuntu22.04 每安装一个软件,就需要重启很多服务?
    在一般情况下,安装一个软件通常不需要重启系统或服务。但是,有些软件的安装可能需要重启相关的服务或重新加载配置。以下是可能导致需要重启服务的几种情况:1.安装依赖关系:某些软件可能依赖于其他服务或库。在安装这些软件时,系统可能需要重启相关的服务以确保依赖项的正确配置和加载......
  • [完结22章]2023版全新高质量商业级小程序全栈项目实战
    点击下载——[完结22章]2023版全新高质量商业级小程序全栈项目实战  提取码:ztnk[完结22章]2023版全新高质量商业级小程序全栈项目实战,又名:Vue3+Uni+Node+MySQL从零实现跨端小程序的全栈应用!在现代社会中,移动互联网的发展必将为人们的生活产生重要影响。微信小程序全栈开发是......
  • 分析队友个人项目:中小学数学卷子自动生成程序
    一、前言  上周完成了个人项目的编写。这里对伙伴的个人项目代码稍作分析,学习她的长处,分析不足,使我们都能得到进步。二、分析(一)功能需求:  总的来说,队友的项目实现了老师给出的需求,可以进行登录、切换登录、出题、题目查重、切换试卷类型等功能。在对细节的处理上,队友的......
  • HNU 个人项目(中小学数学卷子自动生成程序)互评
    目录一.简介二.测试与分析1.黑盒测试2.白盒测试三总结一.简介本篇博客为对结对编程队友朱俊文同学的个人项目(中小学数学卷子自动生成程序的)的评价。首先在这里特别感谢我的结对编程伙伴朱俊文,个人项目互评中,为我的项目提出了很多很好的建议,让我在认清自己不......
  • Acwing 5220
    Acw5220题意自己看思路假设串N长度为\(n\),串H长度为\(m\),遍历串H,对于\([i,i+n-1]\)这一段子串,如果所含字母个数与串N所含字母个数相同,则认为匹配,问题在于如何判断排列重合的问题。字符串哈希。匹配的话直接将这一段的哈希值放入set中,去重,最后set的size就是答案代码const......