给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

Posted q-1993

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。相关的知识,希望对你有一定的参考价值。

public String longestPalindrome(String s) {
         if(s == null||s.length()==0){
            return s;
        }
        String res = "";
        int max=0;
        boolean[][] dp = new boolean[s.length()][s.length()];
        //res=s.substring(0, 1);
        for(int j = 0;j < s.length();j++){
            for(int i=0;i<=j;i++){
                dp[i][j] = (s.charAt(i) == s.charAt(j)) && (((j - i + 1) <= 2) || dp[i+1][j-1]);
                if (dp[i][j] && (j-i+1)>max){
                    max = j-i+1;
                    res = s.substring(i, j+1);

                }
            }
        }
        return res;
    }
}

 

以上是关于给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。的主要内容,如果未能解决你的问题,请参考以下文章

5. 最长回文子串

[LeetCode] 最长回文子串

5.最长回文子串

最长回文子串

最长回文子串

最长回文子串