码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-04-24 23:28:12      阅读:583      评论:0      收藏:0      [点我收藏+]

标签:[]   子串   style   长度   bst   i+1   new   str   int   

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。

标签:[]   子串   style   长度   bst   i+1   new   str   int   

原文地址:https://www.cnblogs.com/q-1993/p/10765668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!