【力扣】5.最长回文子串

news/2025/3/6 1:50:16/

AC截图

题目

思路

  1. 初始化DP表

    • 创建一个大小为 n x n 的二维布尔数组 dp,其中 dp[i][j] 表示字符串 s 从第 i 个字符到第 j 个字符的子串是否为回文。

    • 初始化所有长度为1的子串为回文,即 dp[i][i] = true

  2. 处理长度为2的子串

    • 如果相邻的两个字符相同,则它们构成一个回文子串。更新 dp[i][i+1] 和相应的 startmaxLength

  3. 按长度递增顺序填充DP表

    • 从长度为3开始,逐步增加子串长度,直到达到字符串的总长度。

    • 对于每个可能的子串长度 len,遍历所有可能的起始点 i 和对应的结束点 j(注意 j = i + len - 1 必须在字符串范围内)。

    • 使用状态转移方程 dp[i][j] = (s[i] == s[j] && dp[i+1][j-1]) 更新 dp 数组的值。如果 s[i] == s[j] 并且去掉两端字符后的子串也是回文,则当前子串是回文。

  4. 记录最长回文子串信息

    • 在每次发现一个新的更长的回文子串时,更新最长回文子串的起始位置和长度。

  5. 返回结果

    • 最后根据记录的 startmaxLength 提取并返回最长的回文子串。

代码

class Solution {
public:string longestPalindrome(string s) {int n = s.size();if(n<2) return s;vector<vector<bool>> dp(n,vector<bool>(n));for(int i=0;i<n;i++){dp[i][i] = true;}int maxLen = 1;int start = 0;for(int i=0;i<n-1;i++){if(s[i]==s[i+1]){dp[i][i+1] = true;start = i;maxLen = 2;}}for(int len=3;len<=n;len++){for(int i=0;i<n;i++){int j = i+len-1;if(j>n) break;if(s[i]==s[j] && dp[i+1][j-1]){dp[i][j] = true;start = i;maxLen = len;}}}return s.substr(start,maxLen);}
};


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

相关文章

嵌入式学习-EXTI外部中断

STM32 是一种基于 ARM Cortex-M 内核的微控制器系列&#xff0c;广泛应用于嵌入式系统开发。中断&#xff08;Interrupt&#xff09;是 STM32 中一个非常重要的功能&#xff0c;它允许微控制器在执行主程序的同时&#xff0c;响应外部事件或内部事件的请求&#xff0c;从而实现…

Spark核心之06:知识点梳理

spark知识点梳理 spark_〇一 1、spark是什么 spark是针对于大规模数据处理的统一分析引擎&#xff0c;它是基于内存计算框架&#xff0c;计算速度非常之快&#xff0c;但是它仅仅只是涉及到计算&#xff0c;并没有涉及到数据的存储&#xff0c;后期需要使用spark对接外部的数…

Python:类型转换和深浅拷贝,可变与不可变对象

int()&#xff1a;转换为一个整数&#xff0c;只能转换由纯数字组成的字符串 浮点型强转整型会去掉小数点及后面的数&#xff0c;只保留整数部分 #如果字符串中有数字和正负号以外的字符就会报错 float()&#xff1a;整形转换为浮点型会自动添加一位小数 .0 如果字符串中有…

鸿蒙5.0实战案例:使用Snapshot Insight分析ArkTS内存问题

往期推文全新看点&#xff08;文中附带全新鸿蒙5.0全栈学习笔录&#xff09; ✏️ 鸿蒙&#xff08;HarmonyOS&#xff09;北向开发知识点记录~ ✏️ 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ ✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景&#…

计算机毕业设计SpringBoot+Vue.js图书管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

论文阅读笔记:Depth Pro: Sharp Monocular Metric Depth in Less Than a Second

论文阅读笔记&#xff1a;Depth Pro: Sharp Monocular Metric Depth in Less Than a Second 1 背景1.1 动机1.2 提出的方法 2 创新点3 方法4 模块4.1 训练目标4.2 课程训练 4.3 边缘评价指标4.4 焦距估计 5 效果5.1 和SOTA方法的对比 论文&#xff1a;https://arxiv.org/abs/24…

紧跟 Web3 热潮,RuleOS 如何成为行业新宠?

Web3 热潮正以汹涌之势席卷全球。从金融领域的创新应用到供应链管理的变革&#xff0c;从社交媒体的去中心化尝试到游戏产业的全新玩法探索&#xff0c;Web3 凭借其去中心化、安全性和用户赋权等特性&#xff0c;为各个行业带来了前所未有的机遇。在这股热潮中&#xff0c;Rule…

企业防盗版新招:SPN 沙盒安全上网解决方案

在当今数字化时代&#xff0c;企业运营离不开各类软件工具&#xff0c;但正版软件高昂的成本让不少企业望而却步&#xff0c;转而选择使用盗版软件。然而&#xff0c;这背后却隐藏着巨大的风险。盗版软件常常会在企业不知情的情况下&#xff0c;偷偷向外部网络发送信息&#xf…