string longestPalindrome(string s){ if (s.length() == 0) { return""; } int slen = s.length(); int left = 0; int right = 0; int len = 1; int maxStart = 0; int maxLen = 0;
for (int i = 0; i < slen; i++) { left = i - 1; right = i + 1; while (left >= 0 && s[left] == s[i]) { len++; left--; } while (right < slen && s[right] == s[i]) { len++; right++; } while (left >= 0 && right < slen && s[right] == s[left]) { len = len + 2; left--; right++; } if (len > maxLen) { maxLen = len; maxStart = left; } len = 1; } return s.substr(maxStart+1, maxLen);