leetcode22.括号生成

这道题目是一道回溯题,特殊之处在于右括号选择时,右括号的当前数量必须少于左括号的数量

java 复制代码
class Solution {

    private List<String> result;

    private void generateParenthesis(int n, StringBuilder stringBuilder, int open, int close) {
        if (2*n == stringBuilder.length()) {
            result.add(stringBuilder.toString());
        }
        if (open < n) {
            stringBuilder.append('(');
            generateParenthesis(n, stringBuilder, open + 1, close);
            stringBuilder.deleteCharAt(stringBuilder.length() - 1);
        }
        if (close < open) {
            stringBuilder.append(')');
            generateParenthesis(n, stringBuilder, open, close + 1);
            stringBuilder.deleteCharAt(stringBuilder.length() - 1);
        }
    }

    public List<String> generateParenthesis(int n) {
        result = new ArrayList<>();
        generateParenthesis(n, new StringBuilder(), 0, 0);
        return result;
    }
}
相关推荐
墨染点香7 分钟前
LeetCode 刷题【146. LRU 缓存】
leetcode·缓存·哈希算法
快手技术8 分钟前
从“拦路虎”到“修路工”:基于AhaEdit的广告素材修复
前端·算法·架构
qk学算法9 分钟前
力扣滑动窗口题目-76最小覆盖子串&&1234替换子串得到平衡字符串
数据结构·算法·leetcode
小欣加油10 分钟前
leetcode 860 柠檬水找零
c++·算法·leetcode·职场和发展·贪心算法
code_std13 分钟前
SpringBoot 登录验证码
java·spring boot·后端
摇滚侠14 分钟前
Spring Boot3零基础教程,响应式编程,前景提要,笔记108
java·spring boot·笔记
java干货18 分钟前
BIO是“一人盯一桌”,NIO是“一人管全场”,AIO是“机器人送餐”
java·机器人·nio
还是码字踏实19 分钟前
基础数据结构之数组的矩阵遍历:螺旋矩阵(LeetCode 54 中等题)
数据结构·leetcode·矩阵·螺旋矩阵
Mos_x21 分钟前
@RestController注解
java·后端
迦蓝叶29 分钟前
使用 Apache Jena 构建 Java 知识图谱
java·apache·知识图谱·图搜索·关系查询·关系推理