Ai
1 Star 0 Fork 0

李璨/leetcode_practice

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
22.括号生成.c 1.10 KB
一键复制 编辑 原始数据 按行查看 历史
李璨 提交于 2024-03-31 16:37 +08:00 . add:22.括号生成.c
/*
* @lc app=leetcode.cn id=22 lang=c
*
* [22] 括号生成
*/
// @lc code=start
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
#include <string.h>
static void dfs(int n, int left, int right, char *stack, int len, char **results, int *count)
{
if (len == 2 * n)
{
results[(*count)] = malloc((len + 1) * sizeof(char));
strcpy(results[(*count)++], stack);
return;
}
if (left < n)
{
stack[len] = '(';
dfs(n, left + 1, right, stack, len + 1, results, count);
}
if (right < left)
{
stack[len] = ')';
dfs(n, left, right + 1, stack, len + 1, results, count);
}
}
char **generateParenthesis(int n, int *returnSize)
{
char *stack = calloc(2 * n + 1, sizeof(char)); // calloc会自动将所分配的内存全部初始化为0,malloc()不会对内存进行初始化,如果想要初始化为0,还要额外调用memset()函数。
char **parentheses = malloc(5000 * sizeof(char));
*returnSize = 0;
dfs(n, 0, 0, stack, 0, parentheses, returnSize);
return parentheses;
}
// @lc code=end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Cham_1/leetcode_practice.git
git@gitee.com:Cham_1/leetcode_practice.git
Cham_1
leetcode_practice
leetcode_practice
master

搜索帮助