【动态规划】C++解决回文串类算法题(最长/回文子串、分割回文串、回文子序列、最少插入次数)

您所在的位置:网站首页 最长回文子字符串 【动态规划】C++解决回文串类算法题(最长/回文子串、分割回文串、回文子序列、最少插入次数)

【动态规划】C++解决回文串类算法题(最长/回文子串、分割回文串、回文子序列、最少插入次数)

2024-06-28 09:00:50| 来源: 网络整理| 查看: 265

1. 前言

关于 动态规划的理解 与例题,点击👇

【动态规划】C++解决斐波那契模型题目(三步问题、爬楼梯、解码方法…)

有了上面的经验,我们来解下面 回文串类问题

2. 算法题 2.1_回文子串

在这里插入图片描述 题意分析

题目要求 找到字符串s中的回文子串的个数我们可以使用中心扩展算法(枚举每一位作为回文子串的中心部分,再用双指针向左右两侧遍历)这里使用动态规划(复杂度:n^2, n^2)

思路

设置状态表示 dp[i][j]:字符串s->(i, j) 范围内的子串是否回文 写状态转移方程

在这里插入图片描述

初始化 不用初始化,直接填表即可(状态转移方程考虑了回文串长度为1、2的情况) 填表的顺序 由于用到了i+1与j-1的下标,则从下向上填表 返回值 遍历dp表,返回true的个数

代码

class Solution { public: int countSubstrings(string s) { int n = s.size(); vector dp(n, vector(n, false)); // dp[i][j]: s中{i, j} 范围的子串是否为回文串 // if(s[i] != s[j]) dp[i][j] = false; // 默认为false // 从下向上 + 从左向右 填表 int ret = 0; // 记录回文串个数 for(int i = n - 1; i >= 0; --i) { for(int j = i; j public: string longestPalindrome(string s) { // 动态规划: int n = s.size(); vector dp(n, vector(n, false)); string ret = ""; for(int i = n-1; i >= 0; --i) { for(int j = i; j public: bool checkPartitioning(string s) { int n = s.size(); // 预处理dp数组,用于判断{i, j}范围子串是否为回文串 vector dp(n, vector(n, false)); for(int i = n-1; i >= 0; --i) for(int j = i; j public: int minCut(string s) { int n = s.size(); // 预处理dp数组,用于判断{i,j}范围的最长子串是否为回文串 vector isPal(n, vector(n, false)); for(int i = n-1; i >= 0; --i) for(int j = i; j for(int j = 1; j int n = s.size(); // 初始化dp数组 vector dp(n, vector(n, 0)); // 填表 for(int i = n-1; i >= 0; --i) { dp[i][i] = 1; // i==j 即回文子序列长度为1时 for(int j = i+1; j public: int minInsertions(string s) { int n = s.size(); // 初始化dp数组: dp[i][j]表示 范围在{i, j}内的最少插入次数 vector dp(n, vector(n, 0)); // 填表 for(int i = n-1; i >= 0; --i) // 从下到上 for(int j = i + 1; j


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭