leetcode-括号生成

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

示例 1:

输入:n = 3

输出:"((()))","(()())","(())()","()(())","()()()"

示例 2:

输入:n = 1

输出:"()"

提示:

1 <= n <= 8

思路 :对于当前位置,有两种情况。选左括号或者选右括号。当左括号数量大于右括号数量时,后面无论怎么选择都无法再组成成对的括号。直接返回。
代码

c 复制代码
class Solution {
    public List<String> generateParenthesis(int n) {
        List<String> res = new ArrayList<>();
        dfs(n,n,"",res);
        return res;
    }
    public void dfs(int left,int right,String temp, List<String> res){
        if(left<0||right<0){
            return;
        }
        // 后续无法组成成对括号
        if(left>right){
            return;
        }
        if(left==0&&right==0){
            res.add(temp);
            return;
        }
        // 当前位置选左括号
        dfs(left-1,right,temp+"(",res);
        // 当前位置选右括号
        dfs(left,right-1,temp+")",res);
    }
}
相关推荐
GreenTea8 分钟前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
fqq31 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
Thecozzy3 小时前
大厂 AI Coding 面试大招
人工智能·面试·职场和发展
半夏微凉半夏殇3 小时前
x11与weston对比,优先选哪个
leetcode·均值算法·eclipse
2501_906565123 小时前
数学之美探究
算法
oier_Asad.Chen4 小时前
【洛谷题解/AcWing题解/OI学习笔记】洛谷P2868【USACO07DEC】Sightseeing Cows G(01分数规划求最大比率)
算法·图论·spfa·二分·负环
Dr.kangder4 小时前
嵌入式面试总结(十五)——异常处理
单片机·面试·职场和发展·系统架构·嵌入式
leisoo80975 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法
luj_17688 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
郝学胜-神的一滴8 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程