5. Longest Palindromic Substring
class Solution {
public:
pair<int, int> expendCenter(string s, int L, int R) {
while(L >= 0 && R < s.size() && s[L] == s[R]) --L, ++R;
return {
++L, --R};
}
string longestPalindrome(string s) {
int n = 0, len = 0;
for(int ii = 0; ii < s.length(); ii++) {
auto site = expendCenter(s, ii, ii);
if(site.second - site.first + 1 > len) {
n = site.first;
len = site.second - site.first + 1;
}
site = expendCenter(s, ii, ii+1);
if(site.second - site.first + 1 > len) {
n = site.first;
len = site.second - site.first + 1;
}
}
return s.substr(n, len);
}
};