题解 | #括号生成#
括号生成
https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
def backtrack(path, left, right, res):
if len(path) == 2 * n: # 当括号数量达到2n时,说明已经形成了一个合法的组合
res.append(path)
return
if left < n: # 当左括号数量小于n时,可以添加一个左括号
backtrack(path + "(", left + 1, right, res)
if right < left: # 当右括号数量小于左括号数量时,可以添加一个右括号
backtrack(path + ")", left, right + 1, res)
res = []
backtrack("", 0, 0, res)
return res
