ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 暴力解法O(n^3) ```cpp class Solution { public: string longestPalindrome(string s) { for (int length = s.size(); length > 0; length--) { for (int start = 0; start + length <= s.size(); start++) { if (isPalindrome(s, start, start + length - 1)) return s.substr(start, length); } } return ""; } bool isPalindrome(string s, int left, int right) { while (left < right) { if (s[left] != s[right]) break; left++; right--; } return left >= right; } }; ``` ## 中心扩展发 ~~~ // 中心扩散法 string longestPalindrome(string s) {    if (s.empty()) return "";    int len = s.size();    int longestStart = 0;    int longestEnd = 0;    for (int i = 0; i < len; i++) {        int start = i;        int end = i;        while (start > 0 && end < len - 1 && s[start - 1] == s[end + 1]) {            start--;            end++;       }        if (end - start > longestEnd - longestStart) {            longestStart = start;            longestEnd = end;       }   }    return s.substr(longestStart, longestEnd - longestStart + 1); } ~~~