leetcode 5. 最长回文子串

2023.9.12

本题和 回文子串 类似,看到回文子串相关题目就应该联想起来。思想差不多,但题目要求返回最长的回文子串,所以需要定义两个全局变量:max_length用于记录当前最长回文子串的长度,start用于记录当前最长回文子串的起始索引。 方便最后用substr返回该最长回文子串。

代码如下:

cpp 复制代码
class Solution {
public:
    string longestPalindrome(string s) {
        vector<vector<bool>> dp(s.size(),vector<bool>(s.size(),false));
        int max_length = 0;
        int start = 0;
        for(int i=s.size()-1; i>=0; i--)
        {
            for(int j=i; j<s.size(); j++)
            {
                if(s[i] == s[j])
                {
                    if(j - i <= 1) dp[i][j] = true;
                    else dp[i][j] = dp[i+1][j-1];
                }
                if(dp[i][j] && j-i+1 > max_length) 
                {
                    start = i;
                    max_length = j-i+1;
                }
            }
        }
        return s.substr(start,max_length);
    }
};
相关推荐
阿文的代码库几秒前
欧拉回路与欧拉路径的算法流程演示
算法
汤姆yu6 分钟前
云知声 U2 原生智能体大模型深度解析
大数据·人工智能·算法·ai·大模型·多模态·智能体
小糯米6018 分钟前
C语言文件操作
c语言·开发语言·数据结构
syt_biancheng12 分钟前
贪心算法(1)---简介
算法·贪心算法
一切皆是因缘际会19 分钟前
神经符号融合智能体
大数据·数据结构·人工智能·ai
玖玥拾22 分钟前
C/C++ 数据结构(四)链表与STL容器
c语言·数据结构·c++·链表·stl库
小白小宋23 分钟前
【PUSCH番外篇】5G NR 相位补偿与频移校正:原理、流程与工程实现
算法·5g·matlab·信息与通信·信号处理
满怀冰雪28 分钟前
第15篇-链表基础-反转链表-合并链表与快慢指针
java·算法·链表
2zcode35 分钟前
基于MATLAB语音信号变声算法设计与实现
算法·matlab·语音识别·变声算法
玖玥拾38 分钟前
C/C++ 数据结构(一)基础概念、线性表链表
c语言·数据结构·c++·链表