leetcode5 最长回文子串

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

示例 1:
复制代码
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
复制代码
输入:s = "cbbd"
输出:"bb"
思路

以当前字符为中心点,向两边扩展

以当前字符和下一个字符为中心(即回文串长度为偶数)

更新最长回文子串的起始和结束位置

java 复制代码
class Solution {
    public String longestPalindrome(String s) {
        if (s == null || s.length() < 1) {
            return "";
        }
        int start = 0, end = 0;
        for (int i = 0; i < s.length(); i++) {
            int len1 = expandAroundCenter(s, i, i);
            int len2 = expandAroundCenter(s, i, i + 1);
            int len = Math.max(len1, len2);
            if (len > end - start + 1) {
                start = i - (len - 1) / 2;
                end = i + len / 2;
            }
        }
        return s.substring(start, end + 1);
    }
    private int expandAroundCenter(String s, int left, int right) {
        int L = left, R = right;
        while (L >= 0 && R < s.length() && s.charAt(L) == s.charAt(R)) {
            L--;
            R++;
        }
        return R - L - 1;
    }
}
相关推荐
Java小白笔记1 分钟前
Windows系统免软件命令激活
java·网络·人工智能·windows·ai·ai编程
王志来137944730082 分钟前
从分散到集成:工控服务器机箱采购如何实现“一站式”破局
运维·服务器·人工智能·python
爱敲键盘的猴子10 分钟前
深入理解 Java HashMap
java·hashmap
霸道流氓气质11 分钟前
Java开发者AI编程常用MCP、Skills、Rules全景汇总
java·开发语言·ai编程
程序员老赵15 分钟前
Docker 部署禅道 ZenTao:轻松搭建研发项目管理平台
前端·后端·github
前端小卡拉22 分钟前
用了大半年 AI 编程工具,我才搞懂 Skill 到底是什么
前端·javascript
天涯醉青楼23 分钟前
Spring Boot 接口返回 Bean 时字段名“变形”的深度剖析与解决方案
java
hunterandroid24 分钟前
[鸿蒙从零到一] HarmonyOS 单元测试与 UI 自动化测试实战:从代码质量到用户体验的全链路保障
前端
郭邯28 分钟前
用 Intl.DateTimeFormat 手写一个时区转换器,顺便聊聊我和 AI 结对编程的日常
前端·javascript
阿奇__29 分钟前
微前端、iframe与Auth Code技术方案对比
前端