22. 括号生成

Posted wsshub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22. 括号生成相关的知识,希望对你有一定的参考价值。

二刷之后的代码简洁多了。
括号问题关键在于“合法括号匹配:当前左括号数大于等于右括号数”

class Solution {
    List<String> ans=new LinkedList<>();
    public List<String> generateParenthesis(int n) {
        //合法括号:当前左括号数大于等于右括号数
        dfs(0,0,n,"");
        return ans;

    }
    void dfs(int leftCnt,int rightCnt,int n,String path){
         if(leftCnt<rightCnt||leftCnt>n)return;
         if(rightCnt==n){
             if(leftCnt==n) 
                 ans.add(path);
            return;
         }
         dfs(leftCnt+1,rightCnt,n,path+"(");
         dfs(leftCnt,rightCnt+1,n,path+")"); 
    }
}

以上是关于22. 括号生成的主要内容,如果未能解决你的问题,请参考以下文章

22. 括号生成

22. 括号生成

LeetCode 22. 括号生成c++/java详细题解

Leetcode22. 括号生成(简单回溯)

Leecode22. 括号生成——Leecode大厂热题100道系列

Leecode22. 括号生成——Leecode大厂热题100道系列