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

【代码随想录day 22】 力扣 131.分割回文串

视频讲解;https://www.bilibili.com/video/BV1c54y1e7k6/?vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0131.%E5%88%86%E5%89%B2%E5%9B%9E%E6%96%87%E4%B8%B2.html#%E6%80%9D%E8%B7%AF
力扣题目:https://leetcode.cn/problems/palindrome-partitioning/

在这里插入图片描述
这道题主要思路如下:

  1. 遍历字符串,将遍历的stattIndex抽象成切割的位置,如果从startIndex到当前位置是回文子串,用substr切割,如果不是直接跳过。
  2. 当startIndex遍历到字符串末尾时代表结束,path存入result数组中。
  3. 在遍历过程中,只有回文子串才会一直执行代码,如果不是,直接跳过不会执行代码,更不会往result中存入path。
  4. 在判断回文子串的过程中,如果暂时不是回文子串不能直接ruturn,要继续切割,比如efe,如果切割ef和e他不是回文子串,但是efe是回文子串,所以如果不是回文子串,要用continue继续执行代码。
class Solution {
private:vector<string> path;vector<vector<string>> result;void backtracking( const string &s, int startindex){//判断终止条件if(startindex == s.size()){result.push_back(path);return;}//单层遍历for(int i = startindex; i<s.size();i++){//判断切割点之前是否是回文子串if(isPalindrome(s, startindex, i)){//substr函数截取字符串string str = s.substr(startindex, i - startindex + 1);path.push_back(str);}else continue;//遍历backtracking(s, i+1);path.pop_back();}}bool isPalindrome(const string &s, int start, int end){for(int i = start, j = end; i < j; i++, j--){if(s[i] != s[j]) return false;}return true;}
public:vector<vector<string>> partition(string s) {result.clear();path.clear();backtracking(s, 0);return result;}
};
http://www.xdnf.cn/news/1433449.html

相关文章:

  • DevOps部署与监控
  • MATLAB矩阵及其运算(四)矩阵的运算及操作
  • 集群无法启动CRS-4124: Oracle High Availability Services startup failed
  • 数据库入门实战版
  • 基于YOLOv4的无人机视觉手势识别系统:从原理到实践
  • 货运系统源码 货运物流小程序 货运平台搭建 货运软件开发
  • C19T1
  • Elasticsearch常用DSL快速查询指南
  • Vue.js 中深度选择器的区别与应用指南
  • 从零开始学Vue3:Vue3的生命周期
  • 前端架构知识体系:常见图片格式详解与最佳实践
  • [密码学实战]逆向工程常见工具合集及下载地址(四十七)
  • 23种设计模式-抽象工厂模式
  • CICD实战(3) - 使用Arbess+GitLab+Hadess实现Java项目构建/上传制品库
  • qt使用笔记三之 QGraphicsView、QGraphicsScene 和 QGraphicsPixmapItem 详解
  • 大模型常用的数据类型FP32,BF16,FP16
  • 基于arm芯片的驱动开发——温湿度传感器dht11
  • Java 垃圾回收机制(GC算法、GC收集器如G1、CMS)的必会知识点汇总
  • Java面试实战系列【JVM篇】- JVM内存结构与运行时数据区详解(共享区域)
  • JavaSE丨异常处理详解,高效应对程序中的“意外”
  • 结构抗震与土木工程研究
  • Windows控制台颜色修改
  • 移动端网页设计vm+rem,和px实现方式对比
  • 【设计模式】三大原则 单一职责原则、开放-封闭原则、依赖倒转原则
  • Javascript》》JS》》ES6》 Map、Set、WeakSet、WeakMap
  • 【MATLAB绘图进阶】(3.1)从基础到高级的图形样式控制
  • Android14 init.rc各个阶段的主要操作详解2
  • gbase8s之导出mysql导入gbase8s
  • 良策金宝AI:电力工程的“最强大脑”,如何重塑设计新范式?
  • css中的v-bind 动态变化