5.最长回文子串

简介: 5.最长回文子串

找到字符串s中的最长回文子串。

动态规划:将问题分解为子问题。

在本题中 状态转移方程为:P(i,j)=P(i+1,j−1)∧(Si==Sj) //∧求交集,相当于java中的 &&

边界条件:

P(i,i)=true

P(i,i+1)=(Si==Si+1)

 

 

public class Q5 {
    public String longestPalindrome(String s) {
        int n = s.length();
        boolean[] [] dp = new boolean[n][n]; //dp[i][j] 表示子串s[i..j]是否为回文子串
        String ans = "";
        //实际上是按斜对角线填充dp表的上半部分
        for (int len = 0; len < n; len++) {
            for (int i = 0; i+len < n; i++) {
                int j = i+len;
                if (len == 0) {   //单个元素的一定为true
                    dp[i][j] = true;
                }else  if (len == 1) {
                    dp[i][j] = (s.charAt(i) == s.charAt(j));
                }else { //动态规划 --分解为更小的问题dp[i+1][j-1];
                    dp[i][j] = (s.charAt(i) == s.charAt(j) && dp[i+1][j-1]);
                }
                if (dp[i][j] && len+1 >ans.length()) { //更新ans
                    ans = s.substring(i,i+len+1);
                }
            }
        }
        return  ans;
    }
}
相关文章
|
存储 算法 Java
【算法系列篇】滑动窗口-1
【算法系列篇】滑动窗口-1
|
10月前
|
SQL 存储 API
Flink Materialized Table:构建流批一体 ETL
本文整理自阿里云智能集团 Apache Flink Committer 刘大龙老师在2024FFA流批一体论坛的分享,涵盖三部分内容:数据工程师用户故事、Materialized Table 构建流批一体 ETL 及 Demo。文章通过案例分析传统 Lambda 架构的挑战,介绍了 Materialized Table 如何简化流批处理,提供统一 API 和声明式 ETL,实现高效的数据处理和维护。最后展示了基于 Flink 和 Paimon 的实际演示,帮助用户更好地理解和应用这一技术。
816 7
Flink Materialized Table:构建流批一体 ETL
|
存储 算法 Java
【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
438 2
|
分布式计算 DataWorks 大数据
MaxCompute操作报错合集之在使用 MaxCompute 的 MMA(Multi-Modal Analytics)进行跨 Region 数据迁移时,在配置数据源时遇到错误,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
SQL 数据采集 JSON
MaxCompute中的JSON数据处理
MaxCompute中的JSON数据处理
4056 0
|
机器学习/深度学习 人工智能 算法
机器学习算法之聚类算法
机器学习算法之聚类算法
|
关系型数据库 MySQL Serverless
MySQL中的having和where的区别
总之,`WHERE` 用于过滤原始数据,`HAVING` 用于在 `GROUP BY` 后对聚合数据进行筛选。它们分别适用于不同的查询需求。
213 0
|
JSON 数据格式
报错:JSONException: illegal identifier
报错:JSONException: illegal identifier : \pos 1, line 1, column 2 或JSONException: not close json text, token : error
4995 0