【算法】【字符串】最长回文子串

1  题目

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

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

示例 1:

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

示例 2:

输入:s = "cbbd"
输出:"bb"

提示:

  • 1 <= s.length <= 1000
  • s 仅由数字和英文字母组成

2  解答

唉,超时了,待我后续想想:

复制代码
class Solution {
    public String longestPalindrome(String s) {
        // 1 <= s.length <= 1000 无需校验参数 null
        // 先采用暴力
        int len = s.length();
        String res = "";
        for (int i = 0; i < len; i++) {
            int left = 0, right = len - 1;
            String subRes = "";
            // 左边
            for (int j = 0; j <= i; j++) {
                String leftSub = s.substring(j, i + 1);
                if (leftSub.equals(new StringBuilder(leftSub).reverse().toString()) && leftSub.length() > res.length()) {
                    res = leftSub;
                    break;
                }
            }
            // 右边
            for (int j = len - 1; j >= i; j--) {
                String rightSub = s.substring(i, j + 1);
                if (rightSub.equals(new StringBuilder(rightSub).reverse().toString()) && rightSub.length() > res.length()) {
                    res = rightSub;
                    break;
                }
            }
            // 取两边最短的
            int subLen = Math.min(i - left, right - i);
            int j = 1;
            while (subLen > 0 && j <= subLen) {
                left = i - j;
                right = i + j;
                if (s.charAt(left) == s.charAt(right)) {
                    subRes = s.substring(left, right + 1);
                    j++;
                    continue;
                }
                break;
            }
            if (subRes.length() > res.length()) {
                res = subRes;
            }
            if (subRes.length() == s.length()) {
                return subRes;
            }
        }
        return res;
    }
}
复制代码

加油。

posted @   酷酷-  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示