【字符串】Leetcode 最长回文子串

题目讲解

5. 最长回文子串


算法讲解

dpij表示i~j这一段区间的子串是否是回文

当si == sj的时候,此时是有三种情况的:

i==j说明一个字符肯定是回文

i+1 == j也说明一个字符是回文

i+1 < j说明需要判断i+1, j-1这一段区间是否是回文

此时我们就可以明白si == sj它仅仅判断的是左右两个端点

cpp 复制代码
class Solution {
public:
    string longestPalindrome(string s) {
        //dp[i][j]表示i~j位置的子串是否是回文串
        int n = s.size();
        int len = 1, begin = 0;
        vector<vector<bool>>dp(n, vector<bool>(n));
        for(int i = n-1; i >= 0; i--)
        {
            for(int j = i; j < n; j++)
            {
                if(s[i] == s[j])
                    dp[i][j] = i + 1 < j ? dp[i+1][j-1] : true;
                if(dp[i][j] && j-i+1 > len)
                {
                    len = j-i+1;
                    begin = i;
                }
            }
        }
        return s.substr(begin, len);
    }
};
相关推荐
8Qi86 分钟前
LeetCode 76. 最小覆盖子串(Minimum Window Substring)
数据结构·算法·leetcode·滑动窗口·哈希表
weixin_BYSJ19877 分钟前
springboot旅游管理系统04470(附源码+开发文档+部署教程)
java·spring boot·python·算法·django·flask·旅游
Bingorl9 分钟前
机器学习之朴素贝叶斯算法
人工智能·算法·机器学习
8Qi89 分钟前
LeetCode 209. 长度最小的子数组(Minimum Size Subarray Sum)
java·算法·leetcode·双指针·滑动窗口
狮子座明仔32 分钟前
DeCoRL:把推理链拆成“乐团合奏“——AAAI 2026 一篇把 RLHF 推到 32B 打 GPT-4o 的工作
人工智能·深度学习·算法
QiLinkOS34 分钟前
合肥气链科技有限公司创办与未来技术应用
c语言·数据结构·c++·人工智能·单片机·嵌入式硬件·算法
妄想出头的工业炼药师39 分钟前
追踪定位大模型
算法·开源
Solis程序员41 分钟前
TreeMap 核心原理与实战
java·数据结构·算法
zzzsde1 小时前
【Linux】线程同步和互斥(5):线程池的实现&&线程安全
linux·运维·服务器·开发语言·算法·安全
weixin_468466851 小时前
机器学习数据预处理新手实战指南
人工智能·python·算法·机器学习·编程·数据预处理