22. 括号生成
- 题号:22
- 来源:LeetCode
- 难度:中等
- 标签:
回溯括号字符串 - 语言:TypeScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
TypeScript · O(4^n) 时间 · O(n) 空间 · 更新于 2026-09-27
回溯生成,右括号数不得超过左括号数
typescript
/**
* @difficulty medium
* @tags 回溯,括号,字符串
* @time O(4^n)
* @space O(n)
* @note 回溯生成,右括号数不得超过左括号数
* @22. 括号生成
*/
function generateParenthesis(n: number): string[] {
let res: string[] = []
let str = ""
const dfs = (str: string, l: number, r: number) => {
if (r > l) {
return
}
if (r === n && l === n) {
res.push(str)
return
}
if (l < n) {
dfs(str + "(", l + 1, r)
}
if (r < l) {
dfs(str + ")", l, r + 1)
}
}
dfs(str, 0, 0)
return res
};在 GitHub 上查看题目所在目录:lmliheng/algorithm