回溯算法回文切割(C实现)

本文介绍了使用C语言实现的回溯算法来对字符串进行回文切割。通过树形结构图展示切割过程,每个叶子节点表示一个回文子串。递归函数bt(s,startindex)用于遍历所有可能的切割路径,当startindex等于字符串长度时,检查子串是否为回文,如果是则记录并继续递归,否则跳过。在递归过程中,不断更新路径并回溯以寻找所有可能的回文切割方案。" 51557487,5530891,SQL动态生成按月份分组报表,"['数据库管理', 'SQL查询', '数据处理']
摘要由CSDN通过智能技术生成

char *path
char **res

回文串分割
树形结构图
树形结构
叶子结点表示完结

bt(s,startindex)
{
//切割到最后一个 startindex 是切割线
if(startindex >=s.size)
{
//for里判断
path.push
return;
}
for()
{
//子串[startindex,i]
panduan(s,i,index)//是回文
path.push(子串)
else continue;
}
bt(s,i+1)
path.pop

}

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。

回文串 是正着读和反着读都一样的字符串。

 

示例 1:

输入:s = "aab"
输出:[["a","a","b"],["aa","b"]]
示例 2:

输入:s = "a"
输出:[["a"]]
 

提示:

1 <= s.length <= 16
s 仅由小写英文字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/palindrome-partitioning
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/**
 * 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 **path;//
 int pathTop;
 char ***res;//划分后是回文的集合数组个数][集合内字符串个数][字符串内部]
 int resTop;
 int *length;
 
int judge(char *s,int begin,int end)
{
   
    int flag=1;
    while(end >= begin)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值