力扣.最长回文子串(c++)

简单记录学习~

5. 最长回文子串

给你一个字符串 s,找到 s 中最长的 回文 子串。

示例 1:

复制代码
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

示例 2:

复制代码
输入:s = "cbbd"
输出:"bb"

O(n^2)

cpp 复制代码
class Solution {
public:
    string longestPalindrome(string s) {
        int start = 0, maxLen = 1;
        int n = s.size();

        auto expandAroundCenter = [&](int left, int right) {
            while (left >= 0 && right < n && s[left] == s[right]) {
                --left;
                ++right;
            }
            return make_pair(left + 1, right - left - 1); // 起始位置,长度
        };

        for (int i = 0; i < n; ++i) {
            auto [l1, len1] = expandAroundCenter(i, i);     // 奇数回文
            auto [l2, len2] = expandAroundCenter(i, i + 1); // 偶数回文

            if (len1 > maxLen) {
                start = l1;
                maxLen = len1;
            }
            if (len2 > maxLen) {
                start = l2;
                maxLen = len2;
            }
        }
        return s.substr(start, maxLen);
    }
};
相关推荐
王老师青少年编程几秒前
2025年12月GESP真题及题解(C++八级): 宝石项链
c++·gesp·csp·信奥赛·八级·csp-s·提高组
郝学胜-神的一滴1 分钟前
深入理解Qt中的坐标系统:鼠标、窗口与控件位置详解
开发语言·c++·qt·程序人生
福楠1 分钟前
C++ | 继承
c语言·开发语言·数据结构·c++·算法
编程大师哥3 分钟前
JavaEE初阶的核心组件
java·java-ee
程序员zgh3 分钟前
汽车以太网协议 —— DDS
c语言·开发语言·c++·网络协议·udp·汽车·信息与通信
华如锦3 分钟前
MongoDB作为小型 AI智能化系统的数据库
java·前端·人工智能·算法
王老师青少年编程5 分钟前
2025年12月GESP真题及题解(C++八级): 猫和老鼠
c++·gesp·csp·信奥赛·八级·csp-s·提高组
q***44156 分钟前
C++跨平台开发挑战的技术文章大纲编译器与工具链差异
java·后端
_OP_CHEN7 分钟前
【算法基础篇】(四十六)同余方程终极攻略:从基础转化到实战破解
c++·算法·蓝桥杯·数论·同余方程·扩展欧几里得算法·acm/icpc
stillaliveQEJ1 小时前
【javaEE】Spring AOP(一)
java·spring·java-ee