sundeepblue
5/2/2014 - 4:08 PM

[string] longest palindromic substring

[string] longest palindromic substring

string longestPalindrome(string s) {
    if(s.empty()) return "";
    if(s.size() == 1) return s;
    if(s.size() == 2 && s[0] == s[1]) return s;
    int max_len = 1, start_pos = 0;
    for(int i=0; i<s.size(); i++) {
        int left = i, right = i;
        while(left >= 0 && right < s.size()) {
            if(s[left] == s[right]) {
                if(max_len < right - left + 1) {
                    max_len = right - left + 1;
                    start_pos = left;
                }
                left--;
                right++;
            }
            else break;
        }
        
        left = i;
        right = i+1;
        while(left >= 0 && right < s.size()) {
            if(s[left] != s[right]) break;
            if(max_len < right - left + 1) {
                    max_len = right - left + 1;
                    start_pos = left;
                }
            left--;
            right++;
        }
    }
    return s.substr(start_pos, max_len);
}