方法:循环遍历
1、遍历数组,以数组每个元素为中心寻找最长的回文子串长度;
2、遍历完数组就能得到最长的回文子串。
时间复杂度:o(n2)
空间复杂度:o(1)
class Solution {
public:
int getLongestPalindrome(string A) {
// 特殊情况处理
if (A.length() == 1)
return 1;
int max_len = 1;
for (int i = 0; i < A.length() - 1; i++) {
// 分奇数和偶数区寻找最长的回文子串长度
max_len = max(max_len, max(getLen(A, i, i), getLen(A, i, i + 1)));
}
return max_len;
}
int getLen(string& A, int begin, int end) {
while (begin >= 0 && end < A.length() && A[begin] == A[end]) {
begin--;
end++;
}
return end - begin - 1;
}
};

京公网安备 11010502036488号