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

括号生成

时间:2023-06-15 14:38:11浏览次数:21  
标签:right int dfs 生成 括号 sb left


括号生成

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

示例:

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

解题思路:用回溯解决,不好想到的是方法中传入左括号和右括号剩下的数量

class Solution {
    private List<String> ans = new ArrayList();
    public List<String> generateParenthesis(int n) {
        dfs(n, new StringBuffer(), n, n);
        return ans;
    }
    
    private void dfs(int n, StringBuffer sb, int left, int right) {
        
        //剩下的右括号数量小于左括号数量那么一定不合法
        if(left > right)
            return ;
        
        if(left < 0 || right < 0)
            return ;
        
        if(left == 0 && right == 0) {
            ans.add(sb.toString());
            return ;
        }
        
        //先尝试左括号
        sb.append("(");
        dfs(n, sb, left - 1, right);
        sb.deleteCharAt(sb.length() - 1);
        
        //尝试右括号
        sb.append(")");
        dfs(n, sb, left, right - 1);
        sb.deleteCharAt(sb.length() - 1);
        
    }
    
}


标签:right,int,dfs,生成,括号,sb,left
From: https://blog.51cto.com/u_14813899/6487201

相关文章

  • 文字生成图像 AI免费工具第二弹 DreamStudio
    介绍StableDiffution,就也要提一下DreamStudio,它是StableDiffusion的母公司StabilityAI开发的一个文字生成图像工具,邮箱注册后可以免费生成125张图片。虽然是基于同样的技术,但是DreamStudio生成的图片却呈现出了完全不同的效果。同样的英文输入下,图片中人物的效果明显更加逼真......
  • 批量生成,本地推理,人工智能声音克隆框架PaddleSpeech本地批量克隆实践(Python3.10)
    云端炼丹固然是极好的,但不能否认的是,成本要比本地高得多,同时考虑到深度学习的训练相对于推理来说成本也更高,这主要是因为它需要大量的数据、计算资源和时间等资源,并且对超参数的调整也要求较高,更适合在云端进行。在推理阶段,模型的权重和参数不再调整。相反,模型根据输入数据的特征......
  • 以客户价值为核心的战略生成到绩效管理
    在经济扩张期,创业公司的发展可以更多粗放、快跑、疾奔。但当前,无论行业是否处于红利期、风口,企业基本功的重要性都来到了无以复加的时期。而企业基本功,具象来说就是战略管理、组织能力、绩效管理以及人才发展的体系化梳理。对当下的CEO来说,基本功足够扎实就意味着能够长期主义地......
  • 如何生成和使用requirements.txt
    当开发Python项目时,使用第三方库是很常见的。为了确保项目的可移植性和可重复性,通常会将项目所依赖的库及其版本记录在一个名为requirements.txt的文件中。这样,其他人可以通过该文件轻松地安装项目所需的所有库及其指定版本。以下是如何使用pip生成和安装requirements.txt......
  • DAC+定时器 生成正弦波,三角波
    正弦波生成配置如下DAC触发trigger是由TIM2事件触发。 TIM2配置方式/***生成正弦波数据点函数*@paramNPoints�???个周期内的点�???*@paramVMaxRange输出的电压最大�?�,取�?�范�???0~3.3V*@paramSineWaveTable存放生成的数据点*/voidSineWaveGen......
  • 录制宏自动生成工资条
    1、通过录制宏完成案例工资表自动生成工资条2、增加一个按钮“制作工资条”,单击按钮完成自动生成工资条3、使用代码自动判断有多少员工并自动生成工资条   ......
  • 对抗性自动编码器系列--有监督对抗自动编码器SAAE的原理及实现-随机数生成想要的数字
    文章目录前言监督对抗性自动编码器SAAE风格和内容的分离SAAE训练结果AEAAESAAE实验对比结果恢复效果对比从随机数重建图像的效果这部分实验代码前言先来看看实验:我们使用MNIST手写数字,测试通过自动编码器和对抗性自动编码器学习重建恢复效果。原始图像:自动编码器重建效果......
  • [C语言/PTA] 学生成绩链表处理
    题目要求本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。函数接口定义:structstud_node*createlist();structstud_node*deletelist(structstud_node*head,intmin_score);函数createlist利用scanf从输入......
  • [C++/PTA] 括号匹配
    题目要求给定仅包含()[]{}六种括号的字符串,请你判断该字符串中,括号的匹配是否是合法的,也就是对应括号的数量、嵌套顺序完全正确。输入格式:第一行一个整数T(T<=10)其后T行每行一个字符串只包含[{()}]六种字符(字符串长度2e5以内)输出格式:对于每个字符串,匹配输出Yes,否则输出No......
  • [C++/PTA] 学生成绩快速录入
    题目要求现在需要录入一批学生的成绩(学号,成绩)。其中学号是正整数,并且录入时,后录入学生的学号会比前面的学号大;成绩分两等,通过(Pass,录入时用1代表),不通过(Fail,录入时用0代表)。由于很多学号都是相邻的,并且学号相邻的学生成绩常常相同。所以在录入时,适当地加了速。如果当前学生......