【划分型 DP-最优划分】【腾讯笔试压轴】【hard】力扣132. 分割回文串 II
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。
返回符合要求的 最少分割次数 。
示例 1:
输入:s = “aab”
输出:1
解释:只需一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。
示例 2:
输入:s = “a”
输出:0
示例 3:
输入:s = “ab”
输出:1
提示:
1 <= s.length <= 2000
s 仅由小写英文字母组成
动态规划
class Solution {
public:int minCut(string s) {int n = s.size();vector<vector<bool>> g(n, vector<bool>(n, true));for(int i = n-1; i >= 0; i--){for(int j = i+1; j < n; j++){g[i][j] = s[i] == s[j] && g[i+1][j-1];}}vector<int> f(n, INT_MAX);for(int j = 0; j < n; j++){if(g[0][j]){f[j] = 0;}else{for(int i = 0; i < j; i++){if(g[i+1][j]){f[j] = min(f[j], f[i] + 1);}}}}return f[n-1];}
};
时间复杂度:O(n^2)
空间复杂度:O(n^2)
这道题最关键的部分是我们要对字符串s进行处理,我们通过一个二维数组来记录字符串的各个部分是否是回文字符串。
我们定义一个二维数组g[i][j]来表示字符串[i…j]这一段是否是回文串。在检查是否是回文串的时候,我们只需要判断s[i]和s[j]是否相等,如果相等的话,那么[i+1,…,j-1]是否是回文串,如果也是的话,就说明g[i][j]是true。在处理回文串的时候,需要注意我们要初始化g[i][j]都为true,这是为了避免额外判断:若初始化为 false,则需要额外处理长度为 1 或 2 的子串,代码的复杂度会增加。初始化为 true 可以确保所有的单字符子串都被认为是回文,代码逻辑更加简洁。
预处理完字符串后,我们定义一个动态数组f[i],他代表字符串[0,…,i]的最小分割次数是多少。我们先遍历j从0到n-1,也就是我们要找出从 0到1,0到2,…,0到(n-1)字符串的最小分割次数是多少。因为我们最终的目的就是求从0到(n-1)的字符串的最小分割次数,那么我们求0到j的最小分割次数就可以从前面的状态转换而来。
那么如何进行状态转换,f[j]如何从之前计算过的状态转换而来?我们这时候遍历下标i,目的是判断从i+1到j这字符串是否是回文,如果是回文的话,那么从0到j这个字符串的最小分割次数,不就是0到i的最小分割次数加上1吗。然后我们不断寻找状态转换后的f[j]的最小值并记录。
最后返回f[n-1]即可。
相关文章:
【划分型 DP-最优划分】【腾讯笔试压轴】【hard】力扣132. 分割回文串 II
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。 返回符合要求的 最少分割次数 。 示例 1: 输入:s “aab” 输出:1 解释:只需一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子…...
Kubernetes-镜像加速篇-01-加速工具
[友情链接]加速三剑客 镜像加速:https://github.com/DaoCloud/public-image-mirror 二进制文件加速:https://github.com/DaoCloud/public-binary-files-mirror Helm 加速:https://github.com/DaoCloud/public-helm-charts-mirror 二进制文件…...
字母的异位数
做leetcode242题时出现了一个错误: bool isAnagram(string s, string t) {map<char,int> cnt;bool ans true;int lens s.length();int lent t.length();for(int i 0;i < lens;i){cnt[s[i]] 1;cout << cnt[s[i]] << endl;}for(int i 0;i…...
达梦数据库DM Exception字符串截断错误,略坑~
前言 我之前在使用达梦数据库的时候,遇到了很多很多的问题,主要对达梦数据库也不是很熟悉,它的语法和我所熟悉的mysql和postgresql有很大的区别。 今天,讲一下我之前遇到的一个问题。这个问题的起因是用达梦数据库迁移工具&…...
vue实现图片无限滚动播放
本人vue新手菜鸡,文章为自己在项目中遇到问题的记录,如有不足还请大佬指正 文章目录 实现效果代码展示总结 因为刚接触vue,本想着看看能不能用一些element的组件实现图片的轮播效果,尝试使用过element-UI里的走马灯Carouse&#x…...
python爬虫指南——初学者避坑篇
目录 Python爬虫初学者学习指南一、学习方向二、Python爬虫知识点总结三、具体知识点详解和实现步骤1. HTTP请求和HTML解析2. 正则表达式提取数据3. 动态内容爬取4. 数据存储5. 反爬虫应对措施 四、完整案例:爬取京东商品信息1. 导入库和设置基本信息2. 获取网页内容…...
Vivado+Vscode联合打造verilog环境
一、Vivado下载安装 详细参考我另一篇文章: Vivado2022.2下载安装_fpga vivado下载-CSDN博客https://blog.csdn.net/weixin_61081689/article/details/143460790?spm1001.2014.3001.5501 二、Vscode下载安装 详细参考我另一篇文章: VscodeAnacond…...
Python 微服务架构
Python 微服务架构 目录 🛠 微服务架构的基本概念与设计原则⚡ Python 在微服务中的应用(Flask、FastAPI等框架)🚀 微服务的自动化部署与运维🔍 服务发现与负载均衡📊 微服务中的日志集中管理与监控&…...
Android JNI 技术入门指南
引言 在Android开发中,Java是一种主要的编程语言,然而,对于一些性能要求较高的场景(如音视频处理、图像处理、计算密集型任务等),我们可能需要使用到C或C等语言来编写底层的高效代码。为了实现Java代码与C…...
实在智能受邀出席柳州市智能终端及机器人产业发展合作大会
10 月 27 日至 28 日,由中共柳州市委员会与柳州市人民政府主办的2024柳州市智能终端及机器人产业发展合作大会在柳州莲花山庄隆重举行。大会充分整合各方资源,持续深化与柳州在重大战略规划、重大平台建设、重点产业培育等领域的合作。作为智能体行业的知…...
算法求解(C#)-- 寻找包含目标字符串的最短子串算法
1. 引言 在字符串处理中,我们经常需要从一个较长的字符串中找到包含特定目标字符串的最短子串。这个问题在文本搜索、基因序列分析等领域有着广泛的应用。本文将介绍一种高效的算法来解决这个问题。 2. 问题描述 给定一个源字符串 source 和一个目标字符串 targe…...
AscendC从入门到精通系列(二)基于Kernel直调开发AscendC算子
本次主要讨论下AscendC算子的开发流程,基于Kernel直调工程的算子开发。 1 AscendC算子开发的基本流程 使用Ascend C完成Add算子核函数开发; 使用ICPU_RUN_KF CPU调测宏完成算子核函数CPU侧运行验证; 使用<<<>>>内核调用符…...
DAO模式的理解
目录 DAO模式 含义 DAO模式 的理解 分层思维 分层含义 分层目的 dao层 dao包(对接的是操作数据库的接口) dao包下lmpl 包(dao包中接口的实现类) 补充 1 你创建的实体类需要和数据库中建的表一一对应。 总结 DAO模式 含义…...
使用GitHub Actions实现CI/CD流程
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用GitHub Actions实现CI/CD流程 GitHub Actions 简介 创建仓库 配置工作流 示例工作流文件 触发和运行工作流 部署应用 最佳实…...
机器人助力Bridge Champ游戏:1.4.2版本如何提升玩家体验
在Bridge Champ游戏中,机器人扮演着桥牌游戏的“无名英雄”角色,默默地提升玩家体验。凭借智能化的设计,这些机器人不仅能够陪练,也大大提升了比赛的流畅度与趣味性。 Bridge Champ是什么 Bridge Champ是一个基于Ignis公链的在线…...
滑动窗口(单调队列维护窗口)-acwing
题目: 154. 滑动窗口 - AcWing题库 代码(删除队列窗口多余的>单调队列) 判断最值是否滑出窗口可以放在 入队的后面。 但是,判断,准备入队元素比前面小,要从队尾出队,放在入队前。 总之&a…...
ALB搭建
ALB: 多级分发、消除单点故障提升应用系统的可用性(健康检查)。 海量微服务间的高效API通信。 自带DDoS防护,集成Web应用防火墙 配置: 1.创建ECS实例 2.搭建应用 此处安装的LNMP 3.创建应用型负载均衡ALB实例 需要创建服务关联角…...
c# 动态lambda实现二级过滤(支持多种参数类型和模糊查询)
效果 调用方法 实体类(可以根据需求更换) public class ToolStr50 {public bool isSelected { get; set; }public string toolStr1 { get; set; }public string toolStr2 { get; set; }public string toolStr3 { get; set; }public string toolStr4 { …...
第J5周:DenseNet+SE-Net实战
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 任务: ●1. 在DenseNet系列算法中插入SE-Net通道注意力机制,并完成猴痘病识别 ●2. 改进思路是否可以迁移到其他地方呢 ●3. 测试集acc…...
Intern大模型训练营(五):书生大模型全链路开源体系笔记
观看视频,可以比较详细地了解到书生大模型全链路开源体系。 其中有几个印象比较深的点: 这张图讲述了书生浦语大模型开源的发展史,同时与主流的llama和Chatgpt模型进行比较,可以看出在参数上,InterLM在努力追赶甚至超…...
如何3步免费解锁WeMod专业版:2026年终极增强工具使用指南
如何3步免费解锁WeMod专业版:2026年终极增强工具使用指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的订阅费用而犹豫…...
框架式幕墙与单元式幕墙的价格差异
框架式幕墙与单元式幕墙的价格差异 框架式幕墙与单元式幕墙由于结构及安装方式的不同,在价格方面存着很大的差异。主要表现在以下几个方面: 铝型材的用量: 框架式幕墙铝型材用量一般在7—9 kg/平方米左右。 单元式幕墙铝型材用量一般在13—15kg/平方米左右。 两者每平方…...
跨越平台限制:如何用WorkshopDL免费获取Steam创意工坊模组
跨越平台限制:如何用WorkshopDL免费获取Steam创意工坊模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为Epic Games或GOG平台无法访问Steam创意工坊而烦恼吗…...
火灾动力学模拟实战:如何用FDS构建精准的火灾预测系统
火灾动力学模拟实战:如何用FDS构建精准的火灾预测系统 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 你是否曾面临这样的困境:当设计一栋大型商业建筑时,如何科学评估火灾时的人员疏…...
基于NestJS与Next.js的自托管电影管理应用Story Flicks部署与实战
1. 项目概述:一个为影迷打造的私人观影档案库 如果你和我一样,是个重度电影爱好者,那么你一定经历过这样的时刻:看完一部好片子,内心澎湃,想写点什么记录一下,却发现豆瓣、IMDb的评论区要么太嘈…...
基于WebSocket的机械爪远程控制桥接系统设计与实战
1. 项目概述:一个连接物理世界与数字世界的“机械爪”远程控制桥最近在捣鼓一个挺有意思的开源项目,叫lucas-jo/openclaw-bridge-remote。光看名字,你可能觉得这又是一个关于机器人或者机械臂的遥控项目,但实际深入进去࿰…...
开源无人机任务控制系统:微服务架构与自主飞行开发实战
1. 项目概述:一个开源的无人机任务控制系统如果你和我一样,玩过一段时间无人机,从最初的“一键起飞”到后来想实现一些自动化的航线飞行,你可能会发现,市面上成熟的任务规划软件(比如DJI的Pilot 2或一些地面…...
FPGA微振动视频欧拉放大测量【附程序】
✨ 长期致力于微振动测量、欧拉视频放大、频率估计、Gabor、FPGA研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)改进线性欧拉视频放大算法的FPGA流水…...
在视频剪辑工作流中集成Taotoken大模型以辅助创意构思
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在视频剪辑工作流中集成Taotoken大模型以辅助创意构思 视频创作的前期策划阶段,尤其是分镜头脚本构思和文案草稿撰写&a…...
告别卡顿与错帧:Glide + WebPDecoder库优化WebP动图播放的完整实践
Glide WebPDecoder库深度优化:解决WebP动图播放三大核心难题 在移动应用开发中,动态图像的流畅播放直接影响用户体验。WebP格式因其优秀的压缩率和动画支持,正逐渐成为替代GIF的首选方案。然而,Android平台上使用Glide加载WebP动…...
