class Solution { public: int expandAroundCenter(const string& s, int left, int right) { while (left >= 0 && right < s.length() && s[left] == s[right]) { left--; right++; } return right - left - 1; } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param A string字符串 * @return int整型 */ int getLongestPalindrome(string A) { // write code here // 中心扩展法 if (A.empty()) return 0; int maxLen = 1; for (int i = 0; i < A.length(); ++i) { // 以 s[i] 为中心的奇数长度回文串 int len1 = expandAroundCenter(A, i, i); // 以 s[i] 和 s[i + 1] 为中心的偶数长度回文串 int len2 = expandAroundCenter(A, i, i + 1); // 取最大值 maxLen = max({maxLen, len1, len2}); } return maxLen; } };