Leetcode-22: Generate Parentheses
来源:互联网 发布:php调用json接口 编辑:程序博客网 时间:2024/05/27 06:54
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
思路:这道题类似排列生成算法(permutation generation),由于每次生成的选择只有两种可能(左括号和右括号),我们可以构造一颗深度为2n的二叉树,然后对这颗二叉树进行遍历,这颗二叉树的每个节点为在这此之前做出的选择得到的结果(根节点为空""),每条边为此次的选择('(' 或者 ')'),在去除掉非法的选择(对于任意一次选择,左括号被选择的次数不能小于右括号,且不能超过n)后,最后第2n层的所有叶节点即为选择结果。
public class Solution { public List<String> res; public List<String> generateParenthesis(int n) { res = new LinkedList<>(); StringBuilder str = new StringBuilder(""); generateParenthesis(n, n, str); return res; } private void generateParenthesis(int left, int right, StringBuilder str) { if (left > right || left < 0 || right < 0) return; if (left == 0 && right == 0) { res.add(str.toString()); return; } generateParenthesis(left - 1, right, str.append('(')); str.deleteCharAt(str.length() - 1); generateParenthesis(left, right - 1, str.append(')')); str.deleteCharAt(str.length() - 1); }}
阅读全文
0 0
- LeetCode 22: Generate Parentheses
- [leetcode 22] Generate Parentheses
- LeetCode | #22 Generate Parentheses
- [Leetcode] 22- Generate Parentheses
- LeetCode 22 Generate Parentheses
- [LeetCode 22]Generate Parentheses
- leetcode 22 Generate Parentheses
- Leetcode 22 Generate Parentheses
- LeetCode 22 - Generate Parentheses
- Generate Parentheses - LeetCode 22
- leetcode 22 -- Generate Parentheses
- leetcode-22Generate Parentheses
- leetcode 22: Generate Parentheses
- Leetcode#22 Generate Parentheses
- LeetCode(22) Generate Parentheses
- Leetcode 22 Generate Parentheses
- LeetCode #22 Generate Parentheses
- LeetCode-22 Generate Parentheses
- 洛谷 P3861 8月月赛A
- Ubuntu 17.10 一步安装NVIDIA驱动 + CUDA8.0 在GTX1070笔记本上配置深度学习环境
- 网页HTML5--飞机大战小游戏开发--canvas的应用
- 初学acmer--《算法竞赛入门经典》笔记(十)P54-56
- 室内风水植物摆放的10个要素
- Leetcode-22: Generate Parentheses
- Java数据库属性文件配置
- 位运算 之(1) 按位与(AND)& 操作
- 两个分数相乘
- redis集群
- Java基础总结-网络
- 你不可不看的Android开发命名规范
- 自定义UserAgent绕过安全狗
- java去除重复元素