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);
    }
};
相关推荐
m0_531237173 分钟前
C语言-指针,结构体
c语言·数据结构·算法
癫狂的兔子4 分钟前
【Python】【机器学习】十大算法简介与应用
python·算法·机器学习
丰海洋9 分钟前
leetcode-hot100-1.两数之和
数据结构·算法·leetcode
苦藤新鸡9 分钟前
58 单词搜索
数据结构·算法
_F_y14 分钟前
背包问题动态规划
算法·动态规划
Frostnova丶15 分钟前
LeetCode 401. 二进制手表
算法·leetcode
Wect17 分钟前
LeetCode 104. 二叉树的最大深度:解题思路+代码解析
前端·算法·typescript
Wect22 分钟前
LeetCode 100. 相同的树:两种解法(递归+迭代)详解
前端·算法·typescript
不会敲代码122 分钟前
面试必考:如何优雅地将列表转换为树形结构?
javascript·算法·面试
流云鹤23 分钟前
数学入门(快速幂&乘法逆元&GCD&质数&组合数)
算法