首页 > 其他分享 >131. 分割回文串c

131. 分割回文串c

时间:2024-03-21 19:33:25浏览次数:23  
标签:index 分割 int tail char 131 array head 回文

/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
char c[30][30];

bool judge(char* s,int head,int tail){
    if(head>tail) return false;
    while(head<=tail){
        if(s[head]!=s[tail]) return false;
        head++;
        tail--;
    }
    return true;
}

void dfs(char*** array,int* column,char* s,int* returnSize,int index,int count,int n){
    if(index > n) return ;
    if(index==n){
        column[*returnSize]=count;
        array[*returnSize]=(char**)malloc(sizeof(char*)*count);
        for(int i=0;i<count;i++){
            array[*returnSize][i]=(char*)malloc(sizeof(char)*30);
            strcpy(array[*returnSize][i],c[i]);
        }
        (*returnSize)++;
        return ;
    }
    for(int i=0;i<n;i++){
        int tail=index+i;
        if(tail >=n) continue;
        if(judge(s,index,tail)){
            for(int x=index;x<=tail;x++) c[count][x-index]=s[x];
            dfs(array,column,s,returnSize,tail+1,count+1,n);
            for(int x=index;x<=tail;x++) c[count][x-index]=0;
        }
    }
}

char*** partition(char* s, int* returnSize, int** returnColumnSizes) {
    int n=strlen(s);
    for(int i=0;i<30;i++){
        for(int j=0;j<30;j++) c[i][j]=0;
    } 
    *returnSize=0;
    char*** array=(char***)malloc(sizeof(char**)*100000);
    int* column=(int*)malloc(sizeof(int)*100000);
    dfs(array,column,s,returnSize,0,0,n);
    *returnColumnSizes=column;
    return array;
}

 

标签:index,分割,int,tail,char,131,array,head,回文
From: https://www.cnblogs.com/llllmz/p/18088106

相关文章

  • leedcode- 回文链表
    毫无创意的一版:#定义一个类SolutionclassSolution:#定义一个方法isPalindrome,用于检查链表是否为回文defisPalindrome(self,head:Optional[ListNode])->bool:#如果链表为空,则它是一个回文ifnothead:returnTrue......
  • 1312. 让字符串成为回文串的最少插入次数c
    intmin;voiddfs(char*s,inthead,inttail,intcount){if(head>=tail){if(count<min)min=count;return;}if(s[head]==s[tail]){dfs(s,head+1,tail-1,count);}else{dfs(s,head+1,tail,count+1);......
  • zhipuai的GLM-4模型API访问出现错误: ConnectError: TLS/SSL connection has been clo
    1简介访问zhipuai的GLM-4模型的API时,挂上梯子后访问失败,显示ConnectError:TLS/SSLconnectionhasbeenclosed(EOF)(_ssl.c:1131)报错信息如下{ "name":"ConnectError", "message":"TLS/SSLconnectionhasbeenclosed(EOF)(_ssl.c:1131)",......
  • YOLOv8图像分割:使用ONNX模型进行推理
    基于COCO数据集的YOLOv8目标分割onnx模型推理在本博客中,我们将探讨如何使用YOLOv8目标分割模型进行推理,包括图片,视频文件,摄像头实时分割,特别是ONNX在不同大小(YOLOv8n,YOLOv8s,YOLOv8m,YOLOv8l,YOLOv8x)的模型上进行的实验。我们还将讨论所需的环境配置,代码实现,以及如何......
  • 代码随想录算法训练营day27 | leetcode 39. 组合总和、40. 组合总和 II、131. 分割回
    目录题目链接:39.组合总和-中等题目链接:40.组合总和II-中等题目链接:131.分割回文串-中等题目链接:39.组合总和-中等题目描述:给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形......
  • 代码随想录算法训练营第27天|39. 组合总和|40.组合总和II|131.分割回文串
    代码随想录算法训练营第27天|39.组合总和|40.组合总和II|131.分割回文串详细布置39.组合总和本题是集合里元素可以用无数次,那么和组合问题的差别其实仅在于startIndex上的控制题目链接/文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%9......
  • 推荐收藏!5款很好用的免费PDF分割工具
    在数字化时代,PDF文件因其稳定性和广泛兼容性而成为信息共享的首选格式。然而,随着PDF文件在工作和日常生活中的广泛应用,我们经常需要对这些文件进行管理,其中之一便是分割操作。无论是为了便于分享、打印还是归档,将一个多页的PDF文件拆分成多个单独的文件成为了一项常见的需求。......
  • 每日一练:LeeCode-125、验证回文串【字符串+双指针】
    如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个回文串。字母和数字都属于字母数字字符。给你一个字符串s,如果它是回文串,返回true;否则,返回false。示例1:输入:s="Aman,aplan,acana......
  • 第五十七天| 647. 回文子串、5.最长回文子串、516.最长回文子序列
    Leetcode 647.回文子串题目链接:647回文子串题干:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的......
  • 奇怪的回溯增加了 | leetcode131分割回文串
    题目要求:给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]上述为常规做法,这里回溯的时候是i+1的,就很正常 这是我第一次做的时候自己憋出来......