LintCode 生成括号
2017-03-27 09:57
288 查看
http://www.lintcode.com/zh-cn/problem/generate-parentheses/
给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。
给定
只有左括号数量大于右括号数量的时候才可以添加右括号
原题
给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。
样例
给定
n = 3, 可生成的组合如下:
"((()))", "(()())", "(())()", "()(())", "()()()"
解题思路
典型的使用递归列举出所有答案只有左括号数量大于右括号数量的时候才可以添加右括号
代码实现
class Solution: # @param {int} n n pairs # @return {string[]} All combinations of well-formed parentheses def generateParenthesis(self, n): # Write your code here self.limit = n self.ret = [] self._generateParenthesis("", 0, 0) return self.ret def _generateParenthesis(self, comb, leftnum, rightnum): if leftnum == self.limit and rightnum == self.limit: self.ret.append(comb) return if leftnum < self.limit: self._generateParenthesis(comb+'(', leftnum+1, rightnum) # 如果右括号小于左括号才可以加右括号 if rightnum < leftnum: self._generateParenthesis(comb+')', leftnum, rightnum+1)
相关文章推荐
- 生成括号-lintcode
- lintcode-427-生成括号
- lintcode -- 生成括号
- LintCode:生成括号
- lintcode: 生成括号
- [Lintcode]Generate Parentheses 生成括号
- DFS-lintcode生成括号
- LintCode 生成括号
- [LintCode] Generate Parentheses 生成括号
- 22. Generate Parentheses(生成括号)
- Generate Parentheses 生成有意义的括号对
- lintcode--生成括号
- lintcode 有效的括号序列
- leetcode_22. Generate Parentheses 生成括号,给n对括号,有多少种括号生成方式
- lintcode括号匹配
- 【Lintcode】有效的括号序列
- Generate Parentheses 生成括号-- LintCode题解
- LeetCode 22. Generate Parentheses 生成括号 Python 回溯解法
- lintcode刷题--生成括号
- 生成括号