括号生成(力扣题目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);
        }
    }
}

提交结果:

相关推荐
Univin2 小时前
C++(10.5)
开发语言·c++·算法
Asmalin2 小时前
【代码随想录day 35】 力扣 01背包问题 一维
算法·leetcode·职场和发展
剪一朵云爱着2 小时前
力扣2779. 数组的最大美丽值
算法·leetcode·排序算法
qq_428639612 小时前
虚幻基础:组件间的联动方式
c++·算法·虚幻
深瞳智检2 小时前
YOLO算法原理详解系列 第002期-YOLOv2 算法原理详解
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
@大迁世界2 小时前
Vue 设计模式 实战指南
前端·javascript·vue.js·设计模式·ecmascript
tao3556672 小时前
【Python刷力扣hot100】283. Move Zeroes
开发语言·python·leetcode
怎么没有名字注册了啊3 小时前
C++后台进程
java·c++·算法
jump_jump3 小时前
妙用 localeCompare 获取汉字拼音首字母
前端·javascript·浏览器
U.2 SSD3 小时前
Echarts单轴坐标系散点图
前端·javascript·echarts