int expand(string &s, int L, int R) {
while (L >= 0 && R < s.size() && s[L] == s[R]) {
string longestPalindrome(string s) {
int start = 0, maxLen = 0;
for (int i = 0; i < s.size(); ++i) {
int len1 = expand(s, i, i);
int len2 = expand(s, i, i + 1);
int len = max(len1, len2);
start = i - (len - 1) / 2;
return s.substr(start, maxLen);