【每天学习一点算法 2026/03/17】括号生成

每天学习一点算法 2026/03/17

题目:括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

通过观察可以发现两点规律:

  • 左括号总数等于右括号总数
  • 无论从括号字符串哪个地方截取,左括号数量都是大于等于有括号数量的

根据这个规律我们就可以总结出,递归选择括号字符的边界

typescript 复制代码
function generateParenthesis(n: number): string[] {
  if (n < 1) return []
  const res = []
  function helper (str: string, left: number, right: number) {
    // 如果左右括号都用完了,代表括号组合生成完毕
    if (left === 0 && right === 0) {
      res.push(str)
      return
    }
    if (left > 0) {
      // 左括号有剩余的时候才能选择左括号
      helper(str + '(', left - 1, right)
    }
    
    if (right > left) {
      // 右括号数量大于左括号时才能选择右括号
      helper(str + ')', left, right - 1)
    }
  }
  // 初始传入左右括号总数
  helper('', n, n)
  return res
}

题目来源:力扣(LeetCode)

相关推荐
乘风gg9 分钟前
多 Agent 不是万能的!搞懂这 5 个原则,少走 1 年弯路!
前端·agent·ai编程
猩猩程序员43 分钟前
Vercel 推出 Agent 框架 Eve:让 AI Agent 像写 Web 应用一样简单
前端
爱读源码的大都督1 小时前
Claude Code源码分析(三):为什么系统提示词中需要有tools呢?
前端·人工智能·后端
爱勇宝1 小时前
Claude Code 被曝暗藏“隐形检测”代码:封代理不是最可怕的,可怕的是你根本不知道它在干什么
前端·后端·程序员
小牛不牛的程序员1 小时前
我用 Claude Code 半天撸完了一个完整网站,AI 编程到底提升了多少效率?
前端
东风破_1 小时前
JavaScript 面试常考的字符串算法:从反转字符串到回文判断
前端·javascript
ITOM运维行者2 小时前
从零搭建企业级服务器监控体系:踩坑实录与架构设计
前端·后端
monologues2 小时前
深入 Vue 3 源码:响应式系统的精妙设计与编译优化
前端
hunterandroid2 小时前
Paging 3 分页:从手动分页到声明式加载
前端
用户4099322502122 小时前
Vue状态管理入门第四章:组合式store和SSR风险
前端·vue.js·后端