美文网首页
Leetcode-22:括号生成

Leetcode-22:括号生成

作者: 小北觅 | 来源:发表于2019-01-13 18:45 被阅读6次

    题目描述:

    给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。

    例如,给出 n = 3,生成结果为:

    [
    "((()))",
    "(()())",
    "(())()",
    "()(())",
    "()()()"
    ]

    class Solution {
        ArrayList<String> result = new ArrayList<String>();
        public List<String> generateParenthesis(int n) {
            
            generate(0,0,n,"");
            return result;
        }
        
        public void generate(int left, int right, int n, String sb){
            if(right>left)
                return;
            if(left==n && right ==n){
                result.add(sb.toString());
                return;
            }else{
                if(left<n){
                    generate( left+1, right, n,sb+"(");
                }
                if(right<n){
                    generate( left, right+1, n, sb+")");
                }
            }                
        }
    }
    

    相关文章

      网友评论

          本文标题:Leetcode-22:括号生成

          本文链接:https://www.haomeiwen.com/subject/zieldqtx.html