【Leetcode】22.Generate Parentheses【DFS】
来源:互联网 发布:淘宝云客服报名入口 编辑:程序博客网 时间:2024/06/05 08:37
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenth
eses.
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]参考思路:http://blog.csdn.net/u012501459/article/details/46787097
如果这道题是求上面括号的组合有多少种方式,那么这是一道卡塔兰数的题目,最开始就陷入到这里了,按照卡塔兰数的思路找寻递归关系式,怎么也寻找不到,但这道题好像是另一类问题的一个标准模板,就是求解卡塔兰数的具体组合是什么样的,这又是一种通用的解法。
对于这道题,第一个肯定是’(‘,接下来即可以是’(‘也可以是’)’,只需要满足下面三条规则:
left:表示剩余左括号的数目
right:表示剩余右括号的数目
满足的条件如下:
- 当left=0&&right=0时表示找到一条路径
- 当left!=0时可以向左子树伸展
- 当right!=0&&left< right时可以向右子树伸展
public class Solution { public List<String> generateParenthesis(int n) { List<String> result = new ArrayList<String>(); if(n == 0) return result; int left = n; int right = n; String path = ""; findRes(n,n,result,path); return result; } private void findRes(int left, int right,List<String> result, String path){ if(left == 0 && right == 0){ result.add(path); return; } if(left != 0) findRes(left-1, right, result, path+'('); if(right != 0 && left < right) findRes(left, right-1, result, path+')'); }}
0 0
- DFS leetcode 22. Generate Parentheses
- 【Leetcode】22.Generate Parentheses【DFS】
- leetcode---generate-parentheses---dfs
- 22. Generate Parentheses----dfs
- [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
- 22. Generate Parentheses LeetCode
- leetcode 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- leetcode 22. Generate Parentheses
- leetcode 22. Generate Parentheses
- Expected one result (or null) to be returned by selectOne(), but found: 2问题完美解决
- 开枪效果的制作
- 数据结构实验之链表三:链表的逆置
- 4.Android模拟器上,滑动出现C问题解决
- axis webservice tomcat 服务发布总结之相关流程和问题汇总
- 【Leetcode】22.Generate Parentheses【DFS】
- $.fn.extend(); 和 $.extend();
- Spring获取properties文件中的属性
- 在Drupal中使用Restful之一
- 4-1 复数类的运算符重载
- HTTP方法--Put 还是 Patch?
- poj 1562 Oil Deposits
- iOS动画详解
- 二叉树中两个节点的最近公共节点