方法:循环遍历

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;
    }
};