当前位置: 首页 > 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 读取文件内容每一行,写入另一个文件内
  • 【译】理解JavaScript:new 关键字
  • 07.Android之多媒体问题
  • Angular6错误 Service: No provider for Renderer2
  • canvas 绘制双线技巧
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • interface和setter,getter
  • JAVA 学习IO流
  • Java基本数据类型之Number
  • LeetCode29.两数相除 JavaScript
  • PaddlePaddle-GitHub的正确打开姿势
  • Python连接Oracle
  • python学习笔记-类对象的信息
  • Xmanager 远程桌面 CentOS 7
  • 前端之React实战:创建跨平台的项目架构
  • 如何设计一个微型分布式架构?
  • 十年未变!安全,谁之责?(下)
  • 再次简单明了总结flex布局,一看就懂...
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ​iOS安全加固方法及实现
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​香农与信息论三大定律
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • .net mvc部分视图
  • .NET Remoting学习笔记(三)信道
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net专家(张羿专栏)
  • @Valid和@NotNull字段校验使用
  • [ C++ ] STL---仿函数与priority_queue
  • [ 数据结构 - C++]红黑树RBTree
  • [Java] 图说 注解
  • [Java并发编程实战] 共享对象之可见性
  • [leetcode 双指针]