给定一个字符串 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;
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM