LeetCode:22括号生成

java 复制代码
class Solution {
    List<String> res = new ArrayList<>();

    public List<String> generateParenthesis(int n) {
        backtrack(new StringBuilder(), 0, 0, n);
        return res;    
    }

    //left代表已经用掉的左括号的数量,right代表用掉的右括号的数量
    private void backtrack(StringBuilder path, int left, int right, int n){
        if(path.length() == n * 2){
            res.add(path.toString());
            return;
        }
        //加左括号
        if(left < n){
            path.append("(");
            backtrack(path, left + 1, right, n);
            path.deleteCharAt(path.length() - 1);
        }
        //加右括号
        if(right < left){
            path.append(")");
            backtrack(path, left, right + 1, n);
            path.deleteCharAt(path.length() - 1);
        }
    }
}

必须在right小于left的时候才能加")",不然提前加上会造成结果不合法

相关推荐
智碳能碳管理平台6 小时前
工业能耗台账标准化:能碳管理系统的数据口径怎么设计
算法·能碳管理系统·智碳能碳管理平台·企业能碳管理系统·碳排放核算软件·绿色工厂申报saas·能碳管理平台
带多刺的玫瑰6 小时前
Leecode#15刷题之三数之和
算法·leetcode·职场和发展
圣保罗的大教堂6 小时前
leetcode 877. 石子游戏 中等
leetcode
哭泣方源炼蛊6 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集
牧羊人.3337 小时前
动手学深度学习 02 | 手写数字识别
图像处理·人工智能·深度学习·算法
武帝为此7 小时前
【InnoDB存储引擎介绍】
数据库·算法
shehuiyuelaiyuehao8 小时前
算法32,连续数组,前缀和+哈希表
算法·leetcode·职场和发展
程序员贺加贝8 小时前
报表大 IN 优化:一条 product_profile 超大 IN SQL 背后的报表任务治理
算法·性能优化
知无不研8 小时前
std::function在使用时遇到的问题
c++·算法·st·function
薛定e的猫咪8 小时前
(IEEE Transactions 2025)自适应元强化学习动态柔性作业车间调度框架
网络·人工智能·算法