Longest Palindrome Substring
public String longestPalindrome(String s) {
        if (s == null || s.length() == 0) return "";
        char[] array = s.toCharArray();
        int rStart = 0, rEnd = 0, maxLen = 0;
        for (int i = 0; i < array.length; i++) {
            if (isPalindrome(array, i - maxLen - 1, i)) {
                rStart = i - maxLen - 1;
                rEnd = i;
                maxLen += 2;
            } else if (isPalindrome(array, i - maxLen, i)) {
                rStart = i - maxLen;
                rEnd = i;
                maxLen += 1;
            }
        }
        return s.substring(rStart, rEnd + 1);
    }
    public boolean isPalindrome(char[] array, int start, int end) {
        if (start < 0 || end  >= array.length) return false;
        while (start < end) {
            if (array[start++] != array[end--]) {
                return false;
            }
        }
        return true;
    }