当前位置: 首页 > 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 读取文件内容每一行,写入另一个文件内
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2017 前端面试准备 - 收藏集 - 掘金
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • HTTP中的ETag在移动客户端的应用
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • leetcode46 Permutation 排列组合
  • spring boot下thymeleaf全局静态变量配置
  • 当SetTimeout遇到了字符串
  • 飞驰在Mesos的涡轮引擎上
  • 类orAPI - 收藏集 - 掘金
  • 前端路由实现-history
  • 微信小程序实战练习(仿五洲到家微信版)
  • 一天一个设计模式之JS实现——适配器模式
  • mysql面试题分组并合并列
  • 选择阿里云数据库HBase版十大理由
  • # C++之functional库用法整理
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • # 职场生活之道:善于团结
  • #define
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (笔试题)合法字符串
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (二)c52学习之旅-简单了解单片机
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (过滤器)Filter和(监听器)listener
  • (转)大型网站架构演变和知识体系
  • .naturalWidth 和naturalHeight属性,
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • [2016.7 test.5] T1