22. Generate Parentheses
来源:互联网 发布:大数据可以研究什么 编辑:程序博客网 时间:2024/06/03 17: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:[ "((()))", "(()())", "(())()", "()(())", "()()()"]
思路
这个题目是直接的,一看便知有点栈的意思,再想到递归可以实现。
1. 初始状态string s=””
2. 如果n等于0,直接返回[]
3. 递归每次判断剩余的右括号数是否大于0,若大于0,则s后加“)”,同时rightpar个数减去1,rightpar的初始值为0;
4. 同理,若左括号大于0,则s后加”(“,同时leftpar个数减去1,rightpar个数加上1.
5. 递归返回的条件,左右括号个数同时为0.
public class Solution { public List<String> generateParenthesis(int n) { List<String> rtn = new ArrayList<String>(); addparas(rtn,"",n,0); return rtn; } //leftpar: left parenthesis count //rightpar: right parenthesis count private void addparas(List<String> list, String s, int leftpar, int rightpar){ if(leftpar==0 && rightpar==0){ list.add(s); return; } if(rightpar>0) addparas(list,s+")",leftpar,rightpar-1); if(leftpar>0) addparas(list,s+"(",leftpar-1,rightpar+1); }}
阅读全文
2 0
- [LeetCode]22.Generate Parentheses
- LeetCode --- 22. Generate Parentheses
- LeetCode 22.Generate Parentheses
- [Leetcode] 22. Generate Parentheses
- 【LeetCode】22.Generate Parentheses
- 22. Generate Parentheses
- [leetcode] 22.Generate Parentheses
- 【leetcode】22. Generate Parentheses
- Leetcode-22.Generate Parentheses
- [leetcode] 22. Generate Parentheses
- 22. Generate Parentheses
- 22. Generate Parentheses
- 22. Generate Parentheses LeetCode
- 22. Generate Parentheses
- leetcode 22. Generate Parentheses
- 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- 22. Generate Parentheses
- 以太网,IP,TCP,UDP数据包分析
- do{...}while(0)的意义
- 使用webpack搭建一个react项目
- 文章标题 HihoCoder
- JSTL 标签大全详解
- 22. Generate Parentheses
- A
- sql MD5 加密方式
- 时间编程
- tomcat catalina.sh 修改内存 OutOfMemoryError:PermGen space
- SDWebImage 学习一
- Java线程安全性总结
- 刚哥的感情问题2-0J
- UNIX网络编程卷1:套接字联网-第16章:非阻塞式I/O