5. 最长回文子串

给你一个字符串 s,找到 s 中最长的
回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"

class Solution {
public:
    string longestPalindrome(string s) {
        int n=s.size();
        if(n<2)
        {
            return s;
        }
        int start=0;
        int end=0;
        for(int i=0;i<n;i++)
        {
            int left=i;
            int right=i;
            while(left>=0&&right<n&&s[left]==s[right])
            {
                if(right-left+1>end-start+1)
                {
                    end=right;
                    start=left;
                }
                left--;
                right++;
            }
            left=i;
            right=i+1;
            while(left>=0&&right<n&&s[left]==s[right])
            {
                if(right-left+1>end-start+1)
                {
                    end=right;
                    start=left;
                }
                left--;
                right++;
            }
        }
        return s.substr(start,end-start+1);
    }
};
posted @ 2024-05-22 16:49  东岸  阅读(14)  评论(0)    收藏  举报