Given
n
pairs of parentheses, write a function to generate all combinations of well-formed parentheses.Example 1:
Input: n = 3
Output: [“((()))”,”(()())”,”(())()”,”()(())”,”()()()”]
Example 2:
Input: n = 1
Output: [“()”]
Constraints:
*
1 <= n <= 8
题目大意:
产生n对括号的所有可能
算法思路:
DFS填位法,运用括号定律1: 左括号数 >= 右括号数,也就是左括号剩余数 < 右括号剩余数
注意事项:
- 复杂度的计算
Python代码:
1 | def generateParenthesis(self, n: int) -> List[str]: |
算法分析:
n个括号,有2n位,时间复杂度为Catalan数O[C(n,2n)/n+1]
,空间复杂度O(n)