一个字符串的最长回文子串

Q:求一个字符串的最长回文子串
A:经典问题

public class 最长回文子串 
{
    //第一步先决策出最长的子串的长度
    public static boolean[][] first(char[] arr)
    {
        boolean[][] dp=new boolean[arr.length][arr.length];
        for (int i=0;i0)
        {
            i=0;
            for (int j=i+len;j<=arr.length-1 ;i++,j++ )
            {
                if (dp[i][j])
                {
                    str= new String(arr,i,j-i+1);
                    break outer;
                }
            }
            len--;
        }
        return str;
    }
    public static void main(String[] args) 
    {
        String str="AABACD";
        char[] arr=str.toCharArray();
        boolean[][] dp=first(arr);
        System.out.println(second(arr,dp));
    }
}

你可能感兴趣的:(一个字符串的最长回文子串)