22. Generate Parentheses(生成括号)
题目大意
Given n
pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
中文释义
给定 n
对括号,编写一个函数来生成所有格式正确的括号组合。
示例
- 示例 1:
- 输入:
n = 3
- 输出:
["((()))","(()())","(())()","()(())","()()()"]
- 输入:
- 示例 2:
- 输入:
n = 1
- 输出:
["()"]
- 输入:
限制条件
1 <= n <= 8
解题思路
使用回溯法生成所有可能的括号组合。维护两个计数器,分别记录已放置的左括号和右括号的数量,以确保每次添加的括号都是有效的。
步骤说明
- 当当前字符串长度等于
n * 2
时,将其加入结果中。 - 如果左括号数量小于
n
,则添加一个左括号,并递归调用。 - 如果右括号数量小于左括号数量,添加一个右括号,并递归调用。
- 回溯:在递归返回后,删除最后一个字符,以便尝试其他组合。
代码
class Solution {
<