public String longestPalindrome(String s) {
        if(s==null || s.length()<2)
            return s;
        int l = s.length();
        char[] arr = s.toCharArray();
        boolean[][] mat = new boolean[l + 1][l + 1];
        int aj=0,ai=1;
        for(int i=0;i<=l;i++){
            for(int j=0;j<=l-i;j++){
                if(i==1 || i==0){
                    mat[i][j]=true;
                }
                else if(mat[i-2][j+1] && arr[j]==arr[j+i-1]){
                    mat[i][j]=true;
                    aj=j;
                    ai=i;
                }
            }
        }
        return s.substring(aj,aj+ai);
    }