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

NC 括号生成

时间:2024-07-31 20:56:54浏览次数:16  
标签:right int res NC 生成 括号 recursion left

系列文章目录


文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。
例如,给出n=3,解集为:
“((()))”, “(()())”, “(())()”, “()()()”, “()(())”
在这里插入图片描述
Java实现代码:

import java.util.*;
public class Solution {
    public void recursion(int left, int right, String temp, ArrayList<String> res, int n){
        //左右括号都用完了,就加入结果
        if(left == n && right == n){ 
            res.add(temp);
            return;
        }
        //使用一次左括号
        if(left < n){
            recursion(left + 1, right, temp + "(", res, n);
        }
        //使用右括号个数必须少于左括号
        if(right < n && left > right){ 
            recursion(left, right + 1, temp + ")", res, n);
        }
    }
    public ArrayList<String> generateParenthesis (int n) {
        //记录结果
        ArrayList<String> res = new ArrayList<String>(); 
        //递归
        recursion(0, 0, "", res, n); 
        return res;
    }
}

标签:right,int,res,NC,生成,括号,recursion,left
From: https://blog.csdn.net/pleaseprintf/article/details/140752927

相关文章

  • ubuntu安装x11vnc,xauth: unable to generate an authority file name
    ubuntu安装x11vnc,xauth:unabletogenerateanauthorityfilename在Ubuntu上安装和配置x11vnc时,如果遇到“xauth:unabletogenerateanauthorityfilename”的错误,通常是由于权限问题或缺少必要的环境变量引起的。以下是一些解决此问题的步骤:安装x11vnc首......
  • STAT3006/7305 STAT3006/7305  covariance matrix
    STAT3006/7305Tutorial 11. Assumeis bivariate normal with meanand covariance matrixDeriveanexpressionforthemarginaldistributionofX1 .2. Forthe aboveproblem, derive anexpressionfor the conditional distribution of X1 fromthe......
  • Linux下C++动态链接库的生成以及使用
    目录一.前言二.生成动态链接库三.使用动态链接库一.前言这篇文章简单讨论一下Linux下如何使用gcc/g++生成和使用C++动态链接库(.so文件)。二.生成动态链接库先看下目录结构然后看下代码//demo.h#ifndefDEMO_H#defineDEMO_H#include<string>classDemo{......
  • Invertible Bracket Sequences
    看到这种类似的括号匹配的题目,一定要想到卡特兰数的证明过程呀(将(看成\(1\),)看成\(-1\),于是不难得出充分条件,虽然这道题目并不是直接这么给的,但是我看没人证明)剩下的看官方题解就好了,之所以可以删掉官方题解所说的\(x\),是因为接下来如果\(x\)是\(r_1\)的答案候选项的话,由于\(r_1>......
  • funccache:革命性的Python函数缓存工具,轻松提升代码效率!
    funccacheEnglish|中文如其名,funccache实现函数缓存功能,由GQYLPY团队研发的一个框架,可缓存某个函数或某个类中定义的所有方法的返回值。你的程序中有一个函数会被多次调用,并且返回值不变,你会怎么做?为提高代码效率,你会先调用一次该函数并把返回值存到一个变量,之后就使用......
  • Python - Functional programming
    Functionalprogrammingisaprogrammingparadigminwhichmostoftheworkinaprogramisdoneusingpurefunctions.Apurefunctionisafunctionwithoutanysideeffects;itsreturnvalueisalwaysdeterminedbyitsinputarguments,soitalwaysreturn......
  • OpenAI 向部分用户开放 GPT-4o 高级语音模式;AI 视频生成工具 Vidu 全球上线丨 RTE 开
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观......
  • Python - Creating jump tables using lambda functions
    Wecanplacelambdafunctioninsidelistanddictionaryliterals.Thiswaywecanuselambdaexpressionstocreatejumptables.>>>L=[lambdas:s.strip().lower(),... lambdas:s.strip().upper(),... lambdas:s.lstrip().title(),... lambd......
  • @DisallowConcurrentExecution
    @DisallowConcurrentExecution这个注解的作用是防止同一个JobDetail的多个实例同时执行。如果一个任务还在执行中,而调度器尝试再次触发该任务,则新的触发会被阻塞,直到当前任务执行完成。也就是说,同一个任务在任意时间点上只能有一个实例在执行。使用场景:当你的任务不是线程安......
  • .NET 开源的数据库文档查询和生成工具
    前言在实际项目开发中,需求变更和项目迭代是常态。要求我们能够迅速响应,对数据库结构进行相应的调整,如添加新表、更新现有表结构或增加字段等。为了确保团队成员之间的信息同步,实时更新和维护数据库文档变得至关重要。这不仅提升了数据库的可读性,也极大提高了开发效率和团队协作......