給定一個字符串 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