LeetCode: 22. Generate Parentheses
来源:互联网 发布:如果南京是首都知乎 编辑:程序博客网 时间:2024/06/17 03:29
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:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
题意:打印n对括号能够形成的所有合法括号。
分析:合法括号即从前向后遍历时,遇到左括号加一,遇到右括号减一,在任何位置count值必然大于等于一。因此,可以维持一个count值和record数组以及index,count值表示从0到index的和,record记录前index位置的括号情况,index就是下标。
代码如下:
class Solution { public List<String> generateParenthesis(int n) { List<String> result=new ArrayList<String>(); makeString(result,0,new int[2*n],0,n); return result; } public void makeString(List<String> result,int count,int[]record,int index,int n){ if(index>=2*n-1&&count==0){ StringBuilder s=new StringBuilder(); for(int i=0;i<2*n;i++) if(record[i]==1) s.append("("); else s.append(")"); result.add(s.toString()); } if(index<2*n){ record[index]=1; makeString(result,count+1,record,index+1,n); if(count>0){ record[index]=-1; makeString(result,count-1,record,index+1,n); } } }}
阅读全文
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
- 22. Generate Parentheses LeetCode
- 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
- Eclipse使用总结(三)
- 机器视觉光源的作用及分类
- 从U盘引导并安装Ubuntu server 16.04.3 的方法
- BZOJ1179【APOI2009】ATM <Tarjan>
- 安装kinetic版的moveit失败或找不到相关包问题
- LeetCode: 22. Generate Parentheses
- Udacity作业——TensorFlow notMNIST代码及输出结果——Udacity学习笔记
- 删除链表中重复放入结点
- HotFix移动热修复详解
- C语言运算符
- 注解
- Electron打包总结, 附例子(windows+linux)
- ACM贪心算法之活动安排以及算法证明
- Windows下安装和配置MongoDB