给定一个整数n,生成n对括号的所有合法组合
时间: 2024-10-19 18:10:12 浏览: 21
C#-Leetcode编程题解之第22题括号生成.zip
给定一个整数`n`,生成所有`n`对括号的合法组合是一个经典的回溯算法问题,也称为“括号生成”问题。这些组合需要满足左括号与右括号配对的原则,比如`()`、`(())`、`(()())`等。
以下是简单的Python解决方案,使用递归来完成这一任务:
```python
def generate_parentheses(n):
def backtrack(s='', left=0, right=0):
if len(s) == 2 * n: # 基线条件:已形成n对括号
result.append(s)
return
if left < n: # 可以添加左括号
backtrack(s + '(', left+1, right)
if left <= right and right < n: # 左括号比右括号少时,可以添加右括号
backtrack(s + ')', left, right+1)
result = []
backtrack()
return result
# 示例
n = 3
parenthesis_combinations = generate_parentheses(n)
print(parenthesis_combinations)
阅读全文