Generate Parentheses - LeetCode
来源:互联网 发布:北京软件大学 编辑:程序博客网 时间:2024/06/10 17:03
Generate Parentheses - LeetCode
题目:
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
分析:
这道题目我们一看一般都知道应该用递归解决,一开始我用栈来判断左右括号关系,不过虽然accepted,但是时间不怎么满意,后来想到了,反正只要字符串里左括号数量大于右括号数量,字符串就能继续填右括号,这样我们可以用括号数量来代替栈的判断。直到左括号和右括号都填完了递归结束。
代码:
class Solution: # @param an integer # @return a list of string def generateParenthesis(self, n): res = [] generate(n,n,'',res) return resdef generate(l,r,parstr,res): if r== 0 and l ==0: res.append(parstr) if r>0 and l<r: generate(l,r-1,parstr+')',res) if l>0: generate(l-1,r,parstr+'(',res)
0 0
- LeetCode: Generate Parentheses
- LeetCode: Generate Parentheses
- [Leetcode] Generate Parentheses
- leetcode 51: Generate Parentheses
- [LeetCode] Generate Parentheses
- Leetcode: Generate Parentheses
- LeetCode Generate Parentheses
- 【leetcode】Generate Parentheses
- [LeetCode]Generate Parentheses
- Leetcode Generate Parentheses
- LeetCode-Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode - Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode: Generate Parentheses
- Leetcode: Generate Parentheses
- 【leetcode】Generate Parentheses
- Leetcode: Generate Parentheses
- 【C语言】球从100米自由落下,每次落地后反跳回原高度的一半。当10次落地时,共经过多少米,第10次反弹多高。
- 设计模式
- 设计模式之单例模式(Singleton Pattern)C++实现
- n皇后问题 NOJ 1319
- C++ 深度全面学习
- Generate Parentheses - LeetCode
- editText限制输入的4种方法
- 利用jwplayer的API实现播放定时弹出框效果
- HDU1863----畅通工程
- CodeForces 402A Nuts (二分)
- [省选前题目整理][BZOJ 1857][SCOI 2010]传送带(三分套三分)
- 10^n个整数(亿级)的排序 .
- 算法导论 第18章 思考题18-2 2-3-4树的链接与分裂,推广至B树
- android AsyncTask介绍