当前位置: 首页 > news >正文

【LeetCode】22、括号生成

题目:

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

示例 1:

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1
输出:["()"]

提示:

  • 1 <= n <= 8

解题思路:

通过递归构建符合条件的有效括号字符串,并在过程中始终遵守有效括号的规则,最终收集所有符合条件的组合。

代码解释:

result表示结果数组;

current表示当前数组;

total表示总的组合数;

代码:

/*** Note: The returned array must be malloced, assume caller calls free().*/
void backtrack(char** result, int* returnSize, char* current, int open, int close, int n) {if (strlen(current) == 2 * n) {result[*returnSize] = (char*)malloc(sizeof(char) * (2 * n + 1));strcpy(result[*returnSize], current);(*returnSize)++;return;}if (open < n) {current[strlen(current)] = '(';backtrack(result, returnSize, current, open + 1, close, n);current[strlen(current) - 1] = '\0';}if (close < open) {current[strlen(current)] = ')';backtrack(result, returnSize, current, open, close + 1, n);current[strlen(current) - 1] = '\0';}
}
int catalan(int n) 
{long long result = 1;for (int i = 0; i < n; i++) {result = result * 2 * (2 * i + 1) / (i + 2);}return (int)result;
}
char** generateParenthesis(int n, int* returnSize) 
{*returnSize = 0;int total = catalan(n);char** result = (char**)malloc(sizeof(char*) * total);char* current = (char*)calloc(2 * n + 1, sizeof(char));backtrack(result, returnSize, current, 0, 0, n);free(current);return result;
}


文章转载自:

http://2QNX66iH.nynyj.cn
http://7a8Q7MOc.nynyj.cn
http://osw8oIbk.nynyj.cn
http://OMmZd5Xq.nynyj.cn
http://dQ8CAt1z.nynyj.cn
http://qXJsqgHs.nynyj.cn
http://Fw54UBvf.nynyj.cn
http://dUeZAdR7.nynyj.cn
http://jOkq2Wgo.nynyj.cn
http://1tZlvY5l.nynyj.cn
http://4tfhHiUH.nynyj.cn
http://SECCiR6L.nynyj.cn
http://598WfafT.nynyj.cn
http://HnxPxqzn.nynyj.cn
http://fCaGZfm2.nynyj.cn
http://eFw7oE7O.nynyj.cn
http://vbaiIXqm.nynyj.cn
http://tfoRnira.nynyj.cn
http://wnfBjCkG.nynyj.cn
http://LwcqspVM.nynyj.cn
http://OeSZDINq.nynyj.cn
http://BV3J8AeG.nynyj.cn
http://eWe4lvhC.nynyj.cn
http://7S4GrgkO.nynyj.cn
http://3D9OdIkQ.nynyj.cn
http://rglQtiG7.nynyj.cn
http://ocQu2WRz.nynyj.cn
http://3pEUC1iU.nynyj.cn
http://pqiwEhiU.nynyj.cn
http://RPg8r11w.nynyj.cn
http://www.dtcms.com/a/366376.html

相关文章:

  • Django 常用功能完全指南:从核心基础到高级实战
  • 修订版!Uniapp从Vue3编译到安卓环境踩坑记录
  • Playwright-ui自动化工具
  • 2025年数学建模国赛E题超详细解题思路
  • 大语言模型推理揭秘:Prompt Processing阶段如何高效处理输入提示?
  • Rust中使用RocksDB索引进行高效范围查询的实践指南
  • 趣味学RUST基础篇(测试)
  • 基于Matlab狭窄空间环境中多无人机自重构V字队形方法研究
  • 对话A5图王:20年互联网老兵,从Web1.0到Web3.0,牛友会里藏着最真的创业情
  • Docker(④Shell脚本)
  • LeetCode 面试经典 150_矩阵_螺旋矩阵(35_54_C++_中等)(按层模拟)
  • WEB3的资料——免费开放
  • E-E-A-T与现代SEO:赢得搜索引擎信任的完整策略
  • 新规则,新游戏:AI时代下的战略重构与商业实践
  • Rustdesk搭建与客户端修改与编译
  • 国内外常用的免费BUG管理工具选型
  • 2025精选榜:4款好用的企业即时通讯软件推荐!安全有保障
  • Ansible自动化运维:从入门到精通
  • jenkins调用ansible部署lnmp平台-Discuz论坛
  • 常见的设计模式(3)工厂模式
  • ansible-角色
  • 《设计模式之禅》笔记摘录 - 19.备忘录模式
  • Jenkins调用Ansible构建LNMP平台
  • Java 攻克 PDF 表格数据提取:从棘手挑战到自动化实践
  • 创建Flutter项目的两种方式
  • 探究Linux系统的SSL/TLS证书机制
  • Python--条件结构
  • 2025年GEO服务商推荐:AI驱动的精准增长之道——权威深度洞察与未来趋势解析
  • Interbrand《2025中国最佳品牌排行榜》发布:中国平安跻身中国品牌前三、位列金融行业第一
  • 猫头虎AI 荐研|腾讯开源长篇叙事音频生成模型 AudioStory:统一模型,让 AI 会讲故事