力扣-5.最长回文子串

题目链接

5.最长回文子串

java 复制代码
class Solution {
    public String longestPalindrome(String s) {
        boolean[][] dp = new boolean[s.length()][s.length()];
        int maxLen = 0;
        String str = s.substring(0, 1);
        for (int i = 0; i < s.length(); i++) {
            dp[i][i] = true;
        }
        for (int len = 2; len <= s.length(); len++) {
            for (int i = 0; i + len <= s.length(); i++) {
                int j = i + len - 1;
                if (len == 2) {
                    dp[i][j] = s.charAt(i) == s.charAt(j);
                } else {
                    dp[i][j] = s.charAt(i) == s.charAt(j) && dp[i + 1][j - 1];
                }
                if (dp[i][j]) {
                    str = s.substring(i, i + len);
                }
            }
        }
        return str;
    }
}

小结:双指针可以做居然不超时,但这里还是做了动态规划解法,注意遍历的时候要按照子串长度从小到大遍历,避免跳过。

相关推荐
weixin_3077791330 分钟前
GCC C++实现Matlab矩阵计算和数学函数功能
c++·算法
东方佑1 小时前
UniVoc:基于二维矩阵映射的多语言词汇表系统
人工智能·算法·矩阵
汤永红1 小时前
week1-[分支结构]中位数
c++·算法·信睡奥赛
啊阿狸不会拉杆2 小时前
《算法导论》第 24 章 - 单源最短路径
开发语言·数据结构·c++·算法·php
热爱生活的猴子2 小时前
算法148. 排序链表
数据结构·算法·链表
孤独得猿2 小时前
Redis类型之Hash
redis·算法·哈希算法
点云侠3 小时前
【2025最新版】PCL点云处理算法汇总(C++长期更新版)
c++·算法·计算机视觉·3d·可视化
zaiyang遇见4 小时前
【递归完全搜索】CCC 2008 - 24点游戏Twenty-four
算法·游戏·c/c++·全排列·信息学奥赛
Python智慧行囊4 小时前
排序算法总结
数据结构·算法