题目

代码分析

使用动态规划,写出状态转移方程之后,再去判断动态规划的路线

代码实现

public static String longestPalindrome(String s) {

        char[] chas = s.toCharArray();
        boolean[][] dp=new boolean[chas.length][chas.length];
        int max=1;
        int start=-1;
        int end=-1;
        for(int i=0;i<chas.length;i++)
        {
            dp[i][i]=true;
        }
        for(int i=chas.length-1;i>-1;i--)
        {
            for(int j=i+1;j<chas.length;j++)
            {
                 if(chas[i]==chas[j]&&(i+1==j||dp[i+1][j-1]))
                 {
                     dp[i][j]=true;
                     if(max<j-i+1)
                     {
                         max=j-i+1;
                         start=i;
                         end=j;
                     }
                 }
            }
        }
        return s.substring(start,end+1);
    }

学习情况

1次