题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param A string字符串
* @return int整型
*/
int getLongestPalindrome(string A) {
// write code here
int len = A.size();
int max_len = 1;
for (int i = 0; i < len; i++) {
// 以i为中心,向两边扩展
int left = i - 1;
int right = i + 1;
while (left >= 0 && right < len && A[left] == A[right]) {
left--;
right++;
}
int tmp_len_1 = right - 1 - left;
// 以i i - 1为中心,向两边扩展
left = i - 1;
right = i;
while (left >= 0 && right < len && A[left] == A[right]) {
left--;
right++;
}
int tmp_len_2 = right - 1 - left;
int tmp_len = max(tmp_len_1, tmp_len_2);
max_len = max(max_len, tmp_len);
}
return max_len;
}
};