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

C语言 | Leetcode C语言题解之第22题括号生成

题目:

题解:

// 回溯法求解
#define MAX_SIZE 1430  // 卡特兰数: 1, 1, 2, 5, 14, 42, 132, 429, 1430
void generate(int left, int right, int n, char *str, int index, char **result, int *returnSize) {if (index == 2 * n) { // 当前长度已达2nresult[(*returnSize)] =  (char*)calloc((2 * n + 1), sizeof(char));strcpy(result[(*returnSize)++], str);return;}// 如果左括号数量不大于 n,可以放一个左括号if (left < n) {str[index] = '(';generate(left + 1, right, n, str, index + 1, result, returnSize);}// 如果右括号数量小于左括号的数量,可以放一个右括号if (right < left) {str[index] = ')';generate(left, right + 1, n, str, index + 1, result, returnSize);}
}
/*** Note: The returned array must be malloced, assume caller calls free().*/
char** generateParenthesis(int n, int *returnSize) {char *str = (char*)calloc((2 * n + 1), sizeof(char));char **result = (char **)malloc(sizeof(char *) * MAX_SIZE);*returnSize = 0;generate(0, 0, n, str, 0, result, returnSize);return result;
}

相关文章:

  • 数据治理项目——深铁集团数据治理规划
  • 【从零到一手撕脚手架 | 第三节】项目集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
  • Leetcode【双指针法】
  • 海山数据库(He3DB)原理剖析:浅析OLAP数据库计算引擎中的统计信息
  • 机器学习——概述总结
  • MongoDB【应用 01】通过_id获取记录创建时间(生成规则+解析步骤+源码分享)
  • 计算机组成原理(存储器)
  • 全量知识系统 程序详细设计 之 先验逻辑-实现:从“平凡”回到“平凡” (QA 百度搜索)
  • Echarts-实现地图并轮播地图信息
  • WebView的使用与后退键处理
  • CRMEB多商户商城系统,不止B2B2C
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(八)- 向量整数算术指令
  • 【c++】string类常见接口函数
  • SpringMVC项目入门
  • python 读取文件内容每一行,写入另一个文件内
  • #Java异常处理
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • echarts的各种常用效果展示
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Netty 4.1 源代码学习:线程模型
  • Next.js之基础概念(二)
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Vue.js源码(2):初探List Rendering
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 高性能JavaScript阅读简记(三)
  • 面试遇到的一些题
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 一个SAP顾问在美国的这些年
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • !!Dom4j 学习笔记
  • #、%和$符号在OGNL表达式中经常出现
  • #define,static,const,三种常量的区别
  • #include
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $.ajax()
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (四)JPA - JQPL 实现增删改查
  • (一)基于IDEA的JAVA基础1
  • (转)EOS中账户、钱包和密钥的关系
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ./configure,make,make install的作用(转)
  • .Net Core与存储过程(一)
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 分布式技术比较
  • .NET 事件模型教程(二)
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET连接MongoDB数据库实例教程
  • @31省区市高考时间表来了,祝考试成功
  • @Bean, @Component, @Configuration简析
  • @KafkaListener注解详解(一)| 常用参数详解
  • [52PJ] Java面向对象笔记(转自52 1510988116)