美文网首页
括号生成 (有效括号)

括号生成 (有效括号)

作者: 环宇飞杨 | 来源:发表于2020-04-25 23:39 被阅读0次

题目

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例:

输入:n = 3
输出:[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/generate-parentheses

解题思路

  1. 先用全排列思想写出全部结果
  2. 根据有效括号规则优化逻辑
    1. 左右括号数量必须相等
    2. 加右括号前左括号数量必须大于0
class Solution {
    public List<String> generateParenthesis(int n) {
        List<String> list = new ArrayList();
        generate(list,0,0,n,"");
        return list;
    }

    public void generate (List<String> list,int left,int right,int n,String curStr){
        if (left + right == n*2){ //如果符合结果,那么加入数组
            list.add(curStr);
            return;
        }
        if(left < right){//如果做括号数量小于右括号 那么其余的都不符合结果
            return;
        }
        if (left < n){//左括号不可大于总括号数量
            generate (list,left+1,right,n,curStr+"(");
        }
        if (right < n){//右括号不可大于总括号数量
            generate (list,left,right+1,n,curStr+")");
        }
    }
}

相关文章

  • 括号生成 (有效括号)

    题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 输入...

  • 回溯算法和深度优先搜索(二)

    先看一道题目: 括号生成。 输入一个整数 ,罗列出所有有效的括号组合。有效的括号组合是指 左括号开始,右括号结束,...

  • 22. 括号生成

    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 有效括号组合需满足...

  • LeetCodeDay51 —— 括号生成★★☆

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

  • leetcode(python)22.括号生成

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

  • [day7] [LeetCode] [title22,3,26]

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

  • LeetCode 022

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

  • 要成功就做一百题-92

    题目名称 括号生成 描述 难度属于中等,目的是根据给定的括号数,生成有效的括号集合。 解题思路 这题比较有意思,这...

  • 风云的ARTS打卡(第2周)

    第2周 Algorithm: 括号生成 给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效...

  • 2020-04-24

    leetcode 括号问题:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括...

网友评论

      本文标题:括号生成 (有效括号)

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