卡特兰数—以leetcode22括号生成为例(笔记)

简介: 卡特兰数—以leetcode22括号生成为例(笔记)

23.jpg

3.jpg

4.jpg

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
void bracket(int left,int right,int n,char arr[],char c,char **returns,int *returnSize)
{
    if(left == 0 && right == 0)
    {
        arr[left+right] = c;
    }
    else{
        arr[left+right-1] = c;
    }
    printf("%c",c);
    if(left < right || left > n || right > n)
        return;
    if(left == n && right == n)
    {
        returns[(*returnSize)] = (char *)calloc((2*n+1),sizeof(char));
        // printf("%s",arr);
        strcpy(returns[(*returnSize)],arr);
        (*returnSize)++;
        return;
    }
    bracket(left+1,right,n,arr,'(',returns,returnSize);
    bracket(left,right+1,n,arr,')',returns,returnSize);
    return;
}
// void copy(char *dest,char *src)
// {
  // int i,j=0;
  // for(i=0;i<strlen(src);i++)
  // {
        // dest[j]=src[i];
  // }
  // printf("%s\n",dest);
// }
char ** generateParenthesis(int n, int* returnSize){
    *returnSize = 0;
    printf("@");
    char ** returns = (char **)malloc(sizeof(char *)*1500);
    printf("1");
    char * arr = (char *)calloc((2*n+1),sizeof(char));
    bracket(0,0,n,arr,'(',returns,returnSize);
    return returns;
}
相关文章
|
23天前
|
存储 C语言 索引
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
|
23天前
leetcode-301:删除无效的括号
leetcode-301:删除无效的括号
22 0
|
23天前
|
Java C++ Python
leetcode-20:有效的括号
leetcode-20:有效的括号
35 0
|
23天前
|
测试技术
LeetCode | 20.有效的括号(C语言版)
LeetCode | 20.有效的括号(C语言版)
54 0
LeetCode | 20. 有效的括号
LeetCode | 20. 有效的括号
|
11天前
|
索引
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
16 0
|
23天前
|
Go
golang力扣leetcode 301.删除无效的括号
golang力扣leetcode 301.删除无效的括号
37 0
|
17天前
|
缓存 算法 C语言
数据结构与算法⑧(第三章_上)栈的概念和实现(力扣:20. 有效的括号)
数据结构与算法⑧(第三章_上)栈的概念和实现(力扣:20. 有效的括号)
7 0
|
23天前
leetcode代码记录(有效的括号
leetcode代码记录(有效的括号
14 1
|
23天前
|
算法 安全 Java
【数据结构与算法】6、栈(Stack)的实现、LeetCode:有效的括号
【数据结构与算法】6、栈(Stack)的实现、LeetCode:有效的括号
23 0