括号生成(力扣题目22)

题目描述:

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

示例 1:

输入:n = 3

输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1

输出:["()"]

提示:

1 <= n <= 8

思路描述:

可以利用递归进行尝试搜索,符合条件就加上字符,不符合条件的就直接略去。

代码:

java 复制代码
class Solution {
    public List<String> generateParenthesis(int n) {
        List<String> result=new LinkedList<>();
        createResult("",result,n,n);
        return result;
    }
    public void createResult(String curStr,List<String> result,int left,int right){
        if(right==0 && left==0){
            result.add(curStr);
            return ;
        }
        if(left>0){
            createResult(curStr+"(",result,left-1,right);
        }
        if(right>0 && right>left){
            createResult(curStr+")",result,left,right-1);
        }
    }
}

提交结果:

相关推荐
533_6 分钟前
[element-plus] el-tree 动态增加节点,删除节点
前端·javascript·vue.js
禁止摆烂_才浅10 分钟前
前端开发小技巧-【JavaScript】- 获取元素距离 document 顶部的距离
前端·javascript·react.js
wshzd11 分钟前
LLM之Agent(二十九)|LangChain 1.0核心组件介绍
前端·javascript·langchain
程序猿_极客15 分钟前
Vue 2脚手架从入门到实战核心知识点全解析(day6):从工程结构到高级通信(附代码讲解)
前端·javascript·vue.js·vue2学习笔记
一只小阿乐26 分钟前
vue3 使用v-model开发弹窗组件
javascript·vue.js·elementui
web加加31 分钟前
vue3 +vite项目页面防f12,防打开控制台
前端·javascript·vue.js
StarPrayers.39 分钟前
自蒸馏学习方法
人工智能·算法·学习方法
大锦终40 分钟前
【动规】背包问题
c++·算法·动态规划
智者知已应修善业2 小时前
【c语言蓝桥杯计算卡片题】2023-2-12
c语言·c++·经验分享·笔记·算法·蓝桥杯
hansang_IR2 小时前
【题解】洛谷 P2330 [SCOI2005] 繁忙的都市 [生成树]
c++·算法·最小生成树