美文网首页
Leetcode 5 最长回文子串 简单dp解法 java

Leetcode 5 最长回文子串 简单dp解法 java

作者: YUluo_101 | 来源:发表于2019-10-07 22:24 被阅读0次

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

    示例 1:

    输入: "babad"
    输出: "bab"
    注意: "aba" 也是一个有效答案。
    示例 2:
    
    输入: "cbbd"
    输出: "bb"
    

    不管那些花里胡哨的 直接暴力dp

    class Solution {
        public String longestPalindrome(String s) {
            if (s==null || s.length() <1)
                return "";
            int len = s.length();
            String ret = "";
            boolean[][] dp = new boolean[len][len];
            for(int i =0;i<len;i++)
                dp[i][i] = true;
            for(int i=len-1;i>=0;i--){
                for(int j=i;j<len;j++){
                    if(s.charAt(i) == s.charAt(j) && (j - i < 2 || dp[i + 1][j - 1])){
                        dp[i][j] = true;
                    }
                    else
                        dp[i][j]=false;
                    if(j-i+1 > ret.length() &&dp[i][j]){
                        ret = s.substring(i,j+1);
                    }
                }
            }
            return ret;
        }
    }
    

    相关文章

      网友评论

          本文标题:Leetcode 5 最长回文子串 简单dp解法 java

          本文链接:https://www.haomeiwen.com/subject/tqmmyctx.html