首页 > 其他 > 详细

括号生成

时间:2020-07-28 22:02:45      阅读:62      评论:0      收藏:0      [点我收藏+]

技术分享图片

class Solution {
    List<String> res = new LinkedList<>();
    public List<String> generateParenthesis(int n) {
        if(n == 0) return null;    
        dfs("",0,0,n);
        return res;
    }
    //l:左括号用了几个
    //r:右括号用了几个
    private void dfs(String curStr,int l,int r,int n){
        if(l == n && r == n){
            res.add(curStr);
            return ;
        }
        if(l < r) return ;//不符合题意,构造过程必须是左括号多于等于右括号
        if(l < n){
            dfs(curStr+"(",l+1,r,n);
        }
        if(r < n){
             dfs(curStr+")",l,r+1,n);
        }
    }
}

括号生成

原文:https://www.cnblogs.com/cstdio1/p/13392525.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!