当前位置: 首页 > news >正文

力扣算法ing(59 / 100)

4.17 回溯合集—131.分割回文数

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

示例 1:

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

示例 2:

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

提示:

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

我的思路:

分割为子串,每个子串都是回文串

aab

a a b

aa b

a ab

每个都是回文串->单个值肯定是回文串

如果进行回溯的话:

a      aa       aab
a ab(×)b
b
a,a,b  aa,b     

回溯:

for循环遍历字符串

回溯遍历剩下的字符串,判断是否为回文,不能重复切割

遍历终止条件startIndex === s,length;

判断是否为回文:双指针判断是否相同

function isHuiwen(s:string , startIndex:number , i : number){while(startIndex < i){if(s[startIndex] !== s[i]){return false;}startIndex++;i--;}return true;}

答案错误:在 backtracking 函数中,将字符逐个添加到路径中,这是错误的,我们应该添加的是子串

path.push(s.substring(startIndex , i+1));

正确代码:

function partition(s: string): string[][] {const path = [];const res = [];function backtracking(startIndex : number){if(startIndex === s.length){res.push([...path]);return;}for(let i = startIndex ; i< s.length ;i++){// 判断是否为回文// 是回文if(isHuiwen(s , startIndex , i)){path.push(s.substring(startIndex , i+1));}else {continue;}backtracking(i+1);path.pop();}}function isHuiwen(s:string , startIndex:number , i : number){while(startIndex < i){if(s[startIndex] !== s[i]){return false;}startIndex++;i--;}return true;}backtracking(0);return res;
};

总结:最开始的时候我确实有点不知所措,但是其实这里面就是两个算法:回溯+判断回文

回溯的思路和组合数大差不差,但是在进入path之前要判断是否为回文字符,放入应该是子串而不是字符

相关文章:

  • B端网站建设,怎样平衡功能与美观,满足企业多元需求?
  • 【测试工具】JMeter使用小记
  • Dell戴尔服务器 PowerEdge R750xs + window server2012r2 || 2016
  • kafka报错:The Cluster ID doesn‘t match stored clusterId Some in meta.properties
  • 数据结构|排序算法(三)选择排序 堆排序 归并排序
  • 【AI】React Native中使用Zustand框架及自动生成选择器
  • Uniapp微信小程序:轻松获取用户头像和昵称
  • 【长按图片识别】uniapp vue开发时,点击图片识别—实现转发、收藏、识别图片二维码
  • git tag 标签
  • 基于pycatia的CATIA自动化干涉检测系统开发全解析
  • day30图像处理OpenCV
  • 如何通过数据分析提升软件开发项目的成功率?
  • 电控---printf重定向输出
  • 分布式笔记(一)
  • Python中列表与元组的遍历与排序
  • DeepSeek智能时空数据分析(一):筛选特定空间范围内的POI数据
  • python: range()函数用法总结
  • 高级java每日一道面试题-2025年4月11日-微服务篇[Nacos篇]-Nacos使用的数据库及其数据同步机制是什么?
  • Linux——信号(1)信号的产生
  • 【uniapp】vue2 使用 Vuex 状态管理
  • 在深化教育科技人才一体发展上打头阵、当尖兵!陈吉宁调研复旦大学
  • 新造古镇丨江浙沪重点打造的“水乡客厅”,古镇也能串着玩?
  • 海口警方通报“司机驾车拖行虐猫”:系意外,未发现故意虐猫行为
  • 上海合作组织减贫和可持续发展论坛开幕,沈跃跃宣读习近平主席贺信
  • 著名古人类学家高星获推选为国际史前与原史研究院院士
  • 香港新股市场繁荣:恒瑞医药等4公司同时招股,宁德时代今日港交所上市