给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。 具体代码实现
时间: 2023-04-09 22:01:03 浏览: 111
括号匹配实现代码
好的,这个问题可以回答。以下是一个Python实现的函数:
```python
def generateParenthesis(n):
res = []
def backtrack(s, left, right):
if len(s) == 2 * n:
res.append(s)
return
if left < n:
backtrack(s+'(', left+1, right)
if right < left:
backtrack(s+')', left, right+1)
backtrack('', 0, 0)
return res
```
这个函数使用回溯法来生成所有可能的括号组合,同时保证每个组合都是合法的。其中,left和right分别表示已经使用的左括号和右括号的数量,如果left小于n,则可以添加一个左括号;如果right小于left,则可以添加一个右括号。当左右括号数量都达到n时,就得到了一个合法的括号组合。
阅读全文