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

LeetCode131:分割回文串

题目链接:131. 分割回文串 - 力扣(LeetCode)

代码如下:

class Solution {
private:vector<vector<string>> result;vector<string> path; // 放已经回文的子串void backtracking (const string& s, int startIndex) {// 如果起始位置已经大于s的大小,说明已经找到了一组分割方案了if (startIndex >= s.size()) {result.push_back(path);return;}for (int i = startIndex; i < s.size(); i++) {if (isPalindrome(s, startIndex, i)) {   // 是回文子串// 获取[startIndex,i]在s中的子串string str = s.substr(startIndex, i - startIndex + 1);path.push_back(str);} else {                                // 不是回文,跳过continue;}backtracking(s, i + 1); // 寻找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;}
};

这个题目其实就是需要去做一个分割操作,用什么来表示分割的线呢?其实就是startindex这个值。当把这个回溯抽象成一棵树的时候,我们不难看出来,这个题目需要对于分割的把握严格。

回溯三步走:

参数的设定:这里需要string s, startindex这两个就好

结束条件:如果你当先的分割线已经大于s这个字符串的大小了,那么就可以退出来了

单层循环语句:这个就是从你分割的这个位置开始去遍历,用i++来往后面去判断这个是否回文

最后:还需要编写一个回文的函数。

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

相关文章:

  • 详细解析 devmem 命令:在 Linux 系统中直接访问内存的利器
  • [Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
  • 【前端知识】nodejs项目配置package.json深入解读
  • XGBOOST算法Python实现(保姆级)
  • JDK、MAVEN与IDEA的安装与配置
  • 输出比较简介
  • 什么是反向 DNS 查找以及它的作用是什么?
  • 集群聊天服务器(13)redis环境安装和发布订阅命令
  • [ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案
  • Python Matplotlib 安装指南:使用 Miniconda 实现跨 Linux、macOS 和 Windows 平台安装
  • DimensionX 部署笔记
  • django从入门到精通(五)——表单与模型
  • C语言Day 03 学习总结
  • kafka中是如何快速定位到一个offset的
  • 视频对接rtsp协议学习
  • 【系统架构设计师】真题论文: 论企业信息化规划的实施与应用(包括解题思路和素材)
  • 【ARM Coresight OpenOCD 系列 6.1 -- JTAG Commands】
  • 开源许可协议
  • 241121学习日志——[CSDIY] [InternStudio] 大模型训练营 [11]
  • 跟千里马学框架 遇到的坑
  • Swift从0开始学习 协议和扩展 day5
  • javaScript交互案例
  • 【自动驾驶】数据集合集!
  • el-table表头前几列固定,后面几列根据接口返回的值不同展示不同
  • 【Redis】redis缓存击穿,缓存雪崩,缓存穿透
  • HBase Flink操作
  • C# .Net Core通过StreamLoad向Doris写入CSV数据
  • React-自定义Hook与逻辑共享
  • 蓝桥杯每日真题 - 第17天
  • 游戏开发实现简易实用的ui框架