【算法题】5. 最长回文子串

2023-12-23 22:32:59

题目


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

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

示例 1:

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

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


提示:

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

题解

class Solution {

    public String ans = "";

    public String longestPalindrome(String s) {
        for(int i = 0; i < s.length(); i++){
            extendFromCenter(s, i, i);
            extendFromCenter(s, i, i+1);
        }
        return ans;
    }

    public void extendFromCenter(String s, int leftIndex, int rightIndex){
        while(leftIndex >= 0 && rightIndex < s.length() && s.charAt(leftIndex) == s.charAt(rightIndex)){
            leftIndex--;
            rightIndex++;
        }
        if(rightIndex - leftIndex > ans.length()){
            ans = s.substring(leftIndex+1, rightIndex );
        }
    }
}

文章来源:https://blog.csdn.net/weixin_38838143/article/details/135175516
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。