Solution to Longest Palindromic Substring Problem. See this video for a nice explanation.

class Solution {
    
    int resultStart;
    int resultLength;
    
    public String longestPalindrome(String s) {
        int strLen = s.length();
        if(strLen < 2)
            return s;
        
        for(int start=0;start<strLen-1;start++) {
            expandRange(s, start, start);
            expandRange(s, start, start + 1);
        }
        
        return s.substring(resultStart, resultStart + resultLength);
    }
    
    private void expandRange(String str, int begin, int end) {
        while(begin >=0 && end < str.length() && 
             str.charAt(begin) == str.charAt(end)) {
            begin--; end++;
        }
        
        if(resultLength < (end - begin - 1)) {
            resultStart = begin + 1;
            resultLength = end - begin - 1;
        }
    }
}