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

力扣:131. 分割回文串

 回溯解法思路:

1.先声明一个集合来接受全部的回文子串组合,在声明一个集合来接收单个回文子串的组合。

2.写一个回溯函数,里面有终止条件和遍历全部组合的for循环来进行遍历全部的组合,终止条件为开始索引等于字符串的长度时,表示遍历完了整个字符串,li2加入到li1中去。在遍历for循环中要回溯操作,同时要检查分割段是否为回文子串,如果不是回文子串就跳过本次循环。 要写一个检查回文子串的函数,其中用双指针来检查这个分割段是否是回文子串。

​
class Solution {//接收全部的回文子串List<List<String>> li1=new ArrayList<>();//接收单个回文子串List<String> li2=new ArrayList<>();public List<List<String>> partition(String s) {//调用回溯函数huisu(s,0);return li1;}//回溯函数public void huisu(String s,int startIndex){//判断分割到了字符串的末尾if(startIndex==s.length()){li1.add(new ArrayList<>(li2));return;}//暴力的遍历全部组合for(int j=startIndex;j<s.length();j++){//如果是回文子串,则记录if(huiwen(s,startIndex,j)){//进行分割的字符操作String st = s.substring(startIndex, j+ 1);li2.add(st);}else {//不是回文子串跳过这次循环continue;}//调用方法进行递归。huisu(s,j+1);//得到回文串之后,回溯li2.removeLast();}}//回文函数public boolean huiwen(String s,int startIndex,int j){//遍历用双指针的方法来检查字符串是否是回文子串while(startIndex<j){if(s.charAt(startIndex)!=s.charAt(j)){return false;}startIndex++;j--;}return true;}
}​

http://www.lryc.cn/news/294756.html

相关文章:

  • 2024美赛数学建模B题思路源码
  • 线程的取消和互斥
  • 机器学习之DeepSequence软件使用学习1
  • 【Kotlin】Kotlin环境搭建
  • langgraph学习--创建基本的agent执行器
  • Mybatis中的sql-xml延迟加载机制
  • 【Linux系统学习】1.初识Linux
  • 政安晨:政安晨:机器学习快速入门(三){pandas与scikit-learn} {模型验证及欠拟合与过拟合}
  • 分享65个节日PPT,总有一款适合您
  • 架构学习(二):原生scrapy如何接入scrapy-redis,初步入局分布式
  • 第1节、电路连接【51单片机+L298N步进电机系列】
  • API接口文档怎么写?
  • Qt 范例阅读: QStateMachine状态机框架 和 SCXML 引擎简单记录(方便后续有需求能想到这两个东西)
  • Linux实验记录:使用DHCP动态管理主机地址
  • Qt应用软件【协议篇】MQTT协议介绍
  • Linux ncftp命令教程:如何使用ncftp来管理FTP服务器(附实例详解和注意事项)
  • 2、ChatGPT 在数据科学中的应用
  • 从小白到入门webrtc音视频通话
  • Qt之漂亮的地球
  • FPGA解码MIPI视频:Xilinx Artix7-35T低端FPGA,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持
  • 使用docker部署Kafka(MAC Apple M2 Pro)
  • 车位检测,YOLOV8,OPENCV调用
  • FCIS 2023:洞悉网络安全新态势,引领创新防护未来
  • 前端工程化之:webpack2-1(常用扩展)
  • Python学习路线 - Python高阶技巧 - PySpark案例实战
  • 【TCP】高频面试题
  • Python||五城P.M.2.5数据分析与可视化_使用华夫图分析各个城市的情况(中)
  • 使用PDFBox实现pdf转其他图片格式
  • 【技术预研】StarRocks官方文档浅析(4)
  • 时序数据库 Tdengine 执行命令能够查看执行的sql语句