回溯之分割回文串

题目:

给你一个字符串 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.mzph.cn/news/847810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清除Ubuntu系统中的无法启动的Ubuntu 24实例

如果你的Ubuntu系统中有一个无法启动的Ubuntu 24实例&#xff0c;并且你想要清除这个实例&#xff0c;你可以按照以下步骤操作&#xff1a; &#xff08;1&#xff09;备份重要数据: 在进行任何此类操作之前&#xff0c;请确保备份了所有重要数据&#xff0c;以防万一出现问题。…

CentOS-内网搭建FTP-Server

一、镜像选择 1、 Centos-everting或者DVD 2、7.5 7.6 7.9 均可 二、安装步骤 1、其余步骤和普通安装一致。 2、最重要的一步为“软件选择” 1、勾选FTP、文件以及存储服务器、性能以及开发工具。 三、FTPServer搭建 1、关闭防火墙 systemctl stop firewalld or 通过21和20…

happens-before 关系

2、happens-before 关系 在 Java 中&#xff0c;volatile 关键字用于变量的修饰&#xff0c;它确保对该变量的所有读写操作都是直接从主内存中进行的&#xff0c;而不是从线程的本地缓存 中读取。volatile 关键字可以保证某些类型的内存可见性&#xff0c;并在一定程度上防止…

createAsyncThunk完整用法介绍

createAsyncThunk 是 Redux Toolkit 库中的一个功能&#xff0c;它用于创建处理异步逻辑的 thunk action creator。Redux Toolkit 是一个官方推荐的库&#xff0c;用于简化 Redux 开发过程&#xff0c;特别是处理常见的 Redux 模式&#xff0c;如异步数据流。createAsyncThunk …

ubuntu安装或删除cmake

如果你是第一次安装cmake&#xff0c;直接敲如下命令就可以了&#xff1a; sudo apt update sudo apt-get install cmake 如果发现之前安装的cmake不能被损坏或者不能用了&#xff0c;就要把之前的cmake重新安装&#xff0c;那么我们就要先卸载之前的cmake&#xff0c;敲如下…

机器视觉——找到物块中心点

首先先介绍一下我用的是HALCON中的HDevelop软件。 大家下载好软件后可以测试一下&#xff1a; 在程序编辑器窗口中输入下面指令&#xff1a; read_image(Image,monkey) 那么如果出现这样的图片&#xff0c;说明是没有问题的 那么本次编程采用的是下面这张图片 我们要达到的…

CompletableFuture的底层他是如何实现的

底层原理 CompletableFuture是Java8中引入的新特性,像我们平常遇到的, 某一个计算过程依赖于另外一个计算过程的结构,这些结构就类似于一种链表的形式来体现,每一个阶段都代表着一种异步的操作, 然后这些阶段又是相互依赖的, 基于一种链式的操作. 官方点来解释就是 每个 Comple…

【论文复现|智能算法改进】基于改进麻雀算法的无线传感器网络覆盖优化研究

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】麻雀搜索算法&#xff08;SSA&#xff09;原理及实现 WSN数学模型 2.改进点 基于Sobol序列和ICMIC混沌映射的种群初始化 ICMIC是一种无线映射折叠次数的映射模型: { z n 1 sin ⁡ ( α π…

客户案例|Zilliz Cloud 助力点石科技转型 AI 智能服务商

福建点石科技网络科技有限公司成立于2010年&#xff0c;是国家高新技术企业&#xff0c;阿里云、蚂蚁金服等大厂海内外生态合作伙伴ISV。在餐饮、零售、酒店、旅游、商圈的行业定制化服务化上有深厚积累&#xff0c;在境内外做了大量标杆性软件项目&#xff0c;如东南亚RWS圣淘…

Vite + Vue 3 前端项目实战

一、项目创建 npm install -g create-vite #安装 Vite 项目的脚手架工具 # 或者使用yarn yarn global add create-vite#创建vite项目 create-vite my-vite-project二、常用Vue项目依赖安装 npm install unplugin-auto-import unplugin-vue-components[1] 安装按需自动导入组…

Python | 试卷刷题and基础笔记

1.下列转义字符中&#xff0c; 属于“回车”含义的是 \n 换行 \r 回车 2.for循环遍历字典 在Python中&#xff0c;你可以使用for循环来遍历字典的键&#xff08;keys&#xff09;、值&#xff08;values&#xff09;或者键-值对&#xff08;items&#xff09;。下面是三种遍历…

supervisord常用命令及服务配置记录

whereis supervisor主进程配置文件&#xff1a;/etc/supervisord.conf 子进程配置文件&#xff1a;/etc/supervisor/conf.d 启动supervisor服务 sudo supervisord -c /etc/supervisor/supervisord.conf关闭supervisor则执行命令 sudo supervisorctl shutdown重启supervisor则…

Postman接口测试笔记(超详细)

基于工具Poatman的接口自动化基础应用以及接口关联 一、什么是接口&#xff1f; 硬件接口&#xff1a;USB接口&#xff0c;投影仪接口&#xff0c;鼠标键盘接口 软件接口&#xff1a;称为API&#xff0c;主要使用于数据交互 软件接口分类&#xff1a; 内部接口&#xff1a…

Vue3实战笔记(61)—Vue 3 Watch进化论:解锁实时数据监听新境界

文章目录 前言基本使用总结 前言 Vue 3 中的 watch 功能相比Vue 2有了改进和扩展&#xff0c;旨在提供更灵活的数据监听方式。 基本使用 Vue 3中的watch可以用于Composition API和Options API&#xff0c;但Composition API的使用更为常见。它主要用于监听响应式数据的变化&a…

树莓派5烧系统和ssh远程实现

1、硬件说明 树莓派5 64G micro SD卡读卡器 2、烧录系统过程记录 之前写过一篇pi4B烧录Ubuntu22.04的博客&#xff0c;这篇就简单记录备份下 2.1 去ubuntu官网在树莓派上安装Ubuntu | Ubuntu下载Ubuntu 桌面 24.04 LTS 我之前已经下好了就有个(1) 2.2 用读卡器把SD卡插到…

富格林:采用安全出金操作方法

富格林指出&#xff0c;现货黄金投资是近几年来热门的投资产品&#xff0c;剧烈的行情波动会给投资者带来充分的盈利机会&#xff0c;让不少投资者都开始投身于黄金市场。不过对于新手而言&#xff0c;要想实现安全盈利出金并没有那么容易&#xff0c;需要把握一些正规的交易技…

实战:一款唯美的个人主页-home2.0-2024.6.4(测试成功)

目录 文章目录 目录实验软件前提条件效果说明1、背景2、配置1、克隆代码库2、配置并构建镜像3、部署测试方案1&#xff1a;从docker容器拷贝生成的静态文件放到网站/目录方案2&#xff1a;启动容器&#xff0c;nginx里配置反向代理&#xff08;推荐&#xff09; 4、访问 3、总结…

“物联网安全:万物互联背景下的隐私保护与数据安全策略“

在物联网&#xff08;IoT&#xff09;时代&#xff0c;随着智能设备的普及和万物互联的加速&#xff0c;隐私保护与数据安全成为了亟待解决的关键问题。以下是一些重要的隐私保护与数据安全策略&#xff0c;以确保在万物互联背景下信息的安全&#xff1a; 1. 加强设备安全&…

.NET Core 应用程序发布指南

引言 .NET Core 是一个开源、跨平台的框架&#xff0c;用于构建现代化的、高性能的应用程序。本文将介绍如何将一个 .NET Core 应用程序发布到不同的环境中&#xff0c;包括本地、云端和容器化部署。 准备工作 在开始之前&#xff0c;请确保您的开发环境已经安装了以下工具&…

MySQL数据库开发设计规范总结

MySQL数据库开发设计规范总结 概述MySQL数据库设计规范设计规范-库设计规范-表、列设计规范-索引跟索引相关的SQL优化设计规范-视图设计规范-存储过程设计规范-触发器设计规范-安全规范 数据库架构设计原则一、高可用架构选择二、扩展性三、安全性策略四、数据完整性策略五、规…