题目
September 12, 2017 · View on GitHub
根据给定的n,写一个函数形成所有正确的括号组合。
例如:
输入:3 输出:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
思路
对我来说,这题有些费脑子,递归一直感觉学的不够好。看了大神的解法才有思路。很神奇,用Pycharm调试才懂是怎么回事。思路调试一下代码就清晰了。
class Solution(object):
def generateParenthesis(self, n):
"""
:type n: int
:rtype: List[str]
"""
def generate(p, left, right, parens=[]):
if left:
generate(p+'(', left-1, right)
if right > left:
generate(p+')', left, right-1)
if not right:
parens.append(p)
return parens
return generate('', n, n)