classSolution { public: intexpandAroundCenter(string s, int left, int right){ int L = left, R = right; while(L >= 0 && R < s.size() && s[L] == s[R]){ L--; R++; } return R - L - 1; } stringlongestPalindrome(string s){ if( s.size() < 1) return""; int start = 0, end = 0; for(int i = 0; i < s.size(); i++){ //以i为中心点开始探测。 int len1 = expandAroundCenter(s,i,i); //以i与i+1位置的之间开始探测。 int len2 = expandAroundCenter(s,i,i+1); int len = max(len1,len2); if(len > end-start){ start = i - (len-1)/2; end = i + len/2; } } return s.substr(start,end-start+1); } };