回溯之分割回文串

news/2024/9/23 20:24:41/

题目:

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 

回文串

 。返回 s 所有可能的分割方案。

示例 1:

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

示例 2:

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

难点:这里用到一个很取段的思路,其实和取点的内容差不多,但是取端更难理解。

思路:直接看回溯函数的内容,首先我们是取段的,如果这一段不行那就往后面加1,直到加道循环结束。然后就被pop掉。如果可以取端,并且取到了最后一段,也就是开始的startIndex大于等于size那么就代表这一条都是回文字符串。然后需要一个判断函数,判断字符串是否为回文字符串,如果是往path里面加。

学到的新函数:array.substr( a ,b) a表示字符串的开始,b表示数量   含义:选取字符串array从a开始往后的b个数

看代码:

class Solution {
private:vector<vector<string>> result;vector<string> path;void backtraking(string s,int startIndex){if(startIndex > s.size()-1){result.push_back(path);return;}for(int i = startIndex;i < s.size();i++){if(check(s,startIndex,i)){string str = s.substr(startIndex,i-startIndex+1);path.push_back(str);}else {continue;}backtraking(s,i+1);path.pop_back();}}bool check(string s,int a,int b){int left = a;int right = b;for(; left < right; left++,right--){if(s[left] != s[right])return false;}return true;}public:vector<vector<string>> partition(string s) {backtraking(s,0);return result;}
};

 


http://www.ppmy.cn/news/1467349.html

相关文章

图解Mysql索引原理

概述 是什么 索引像是一本书的目录列表&#xff0c;能根据目录快速的找到具体的书本内容&#xff0c;也就是加快了数据库的查询速度索引本质是一个数据结构索引是在存储引擎层&#xff0c;而不是服务器层实现的&#xff0c;所以&#xff0c;并没有统一的索引标准&#xff0c;…

阻性负载和感性负载的区别

1.阻性负载&#xff1a; 阻性负载是指电路中只包含电阻元件的情况。这种负载会使得电流与电压之间呈现出线性关系&#xff0c;即满足欧姆定律。 当负载电流负载电压没有相位差时负载为阻性(如负载为白炽灯、电炉)。 2.感性负载&#xff1a; 感性负载指的是电路中含有电感元…

CMakeLists.txt和Package.xml

CMakeLists.txt和Package.xml CMakeLists.txt 总览 CMakeLists.txt 是用于定义如何构建 ROS (Robot Operating System) 包的 CMake 脚本文件。CMake 是一个跨平台的构建系统&#xff0c;用于自动化编译过程。在 ROS 中&#xff0c;CMakeLists.txt 文件指定了如何编译代码和链…

【数据库】SQL--DQL(初阶)

文章目录 DCL1. 基本介绍2. 语法2.1 基础查询2.2 条件查询2.3 聚合函数2.4 聚合查询2.5 分组查询2.6 排序查询2.7 分页查询2.8 综合案例练习2.9 执行顺序 3. DQL总结 DCL 更多数据库MySQL系统内容就在以下专栏&#xff1a; 专栏链接&#xff1a;数据库MySQL 1. 基本介绍 DQL英…

Python Lambda函数的应用实例教程

在Python编程中&#xff0c;lambda函数是一种简洁且强大的工具&#xff0c;用于创建小型匿名函数。它们在需要快速定义简单函数时特别有用。本文将详细介绍lambda函数的语法及其多种应用实例&#xff0c;帮助读者更好地理解和使用lambda函数。 一、lambda函数的基本概念 1.1 什…

IP协议1.0

基本概念&#xff1a; • 主机: 配有IP地址, 但是不进⾏路由控制的设备; • 路由器: 即配有IP地址, ⼜能进⾏路由控制; • 节点: 主机和路由器的统称; IP协议的报头 • 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. • 4位头部⻓度(header length): IP头部的⻓…

AndroidStudio中debug.keystore的创建和配置使用

1.如果没有debug.keystore,可以按照下面方法创建 首先在C:\Users\Admin\.android路径下打开cmd窗口 之后输入命令:keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 输入两次密码(密码不可见,打码处随便填写没关系) 2.在build…

【云原生】Kubernetes----PersistentVolume(PV)与PersistentVolumeClaim(PVC)详解

目录 引言 一、存储卷 &#xff08;一&#xff09;存储卷定义 &#xff08;二&#xff09;存储卷的作用 1.数据持久化 2.数据共享 3.解耦 4.灵活性 &#xff08;三&#xff09;存储卷的分类 1.emptyDir存储卷 1.1 定义 1.2 特点 1.3 示例 2.hostPath存储卷 2.1 …