方法:循环遍历
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; } };