lintcode -- 生成括号
2017-07-25 11:22
134 查看
给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。您在真实的面试中是否遇到过这个题? Yes样例给定
n = 3, 可生成的组合如下:
"((()))", "(()())", "(())()", "()(())", "()()()"
/*采用递归树的思想,当左括号数大于右括号数时可以加左或者右括号,否则只能加左括号,当左括号数达到n时,剩下全部采用递归树的思想left: 左括号的数量right:右括号数量n:括号的对数当left == n:表示左括号已经到达最大值了,只能添加右括号当left >= right: 表示左括号数量 小于 右括号数量,可以添加左括号 也可以添加右括号当left < right or left >n or right >n : 非法操作*/public class Solution { public ArrayList<String> generateParenthesis(int n){ ArrayList<String> res = new ArrayList<String>(); if(n<=0)return res; String paren = ""; helper(res,paren,n,n); return res; }public void helper(ArrayList<String> res,String paren,int left,i4000nt right){ if(left == 0 && right == 0){ res.add(paren); return; } if(left > 0){ helper(res,paren+"(",left -1,right); } if(right > 0 && left < right){ helper(res,paren+")",left,right -1 ); } }}
相关文章推荐
- 生成括号-lintcode
- LintCode 生成括号
- [LintCode] Generate Parentheses 生成括号
- LintCode:生成括号
- [Lintcode]Generate Parentheses 生成括号
- DFS-lintcode生成括号
- lintcode-427-生成括号
- lintcode: 生成括号
- LintCode 生成括号
- 长见识了,php生成唯一串(算上两括号38位)
- lintcode--生成括号
- lintcode,生成括号
- Leetcode 22. 括号生成
- 【Lintcode】有效的括号序列
- lintcode之有效的括号序列(valid parenthese)
- LeetCode 22. Generate Parentheses 生成括号 Python 回溯解法
- 生成括号
- 【堆栈】[Lintcode]有效的括号序列
- [LintCode] Valid Parentheses 验证括号
- [CareerCup] 9.6 Generate Parentheses 生成括号