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;
    }
}
相关推荐
点云SLAM2 分钟前
PyTorch 中Tensor常用数据结构(int, list, numpy array等)互相转换和实战示例
数据结构·人工智能·pytorch·算法·list·numpy·tensor
真实的菜43 分钟前
适配器模式:接口转换的神奇魔法[特殊字符],让不兼容的类和谐共处!
java·适配器模式
骚戴1 小时前
SpringBoot源码解析(十五):spring-boot-autoconfigure.jar的模块化设计
java
YuTaoShao1 小时前
Java八股文——计算机网络「应用层篇」
java·网络·计算机网络
Mryan20051 小时前
Android 应用多语言与系统语言偏好设置指南
android·java·国际化·android-studio·多语言
Jo乔戈里2 小时前
计量经济学(复习/自用/未完)
算法
鲁Q同志2 小时前
若依导出模板时设置动态excel下拉框(表连接的)
java·excel
苦学LCP的小猪2 小时前
LeeCode94二叉树的中序遍历
数据结构·python·算法·leetcode
实习生小黄2 小时前
基于扫描算法获取psd图层轮廓
前端·javascript·算法
汇匠源3 小时前
Java 零工市场小程序 | 灵活就业平台 | 智能匹配 | 日结薪系统 | 用工一站式解决方案
java·小程序