LeetCode5-最长回文子串-暴力-枚举

原题链接

LeetCode5-最长回文子串-暴力-枚举_第1张图片

Note:

枚举整个字符串,每次枚举的时候当做是中心点,开始往两边扩展,如果不出界并且字符相同,那么就继续拓展。结束之后更新更长的答案

会出现奇数和偶数的情况,奇数就是每个从距离中心差一个的位置开始,偶数的就是当前位置作为左端点,加一作为右端点

代码如下:

class Solution {
public:
    string longestPalindrome(string s) {
        string res;
        for(int i = 0; i < s.size(); i ++){
            int l = i - 1, r = i + 1;
            while(l >= 0 && r < s.size() && s[l] == s[r])  l --, r ++;
            if(res.size() < r - l - 1)  res = s.substr(l + 1, r - l - 1);

            l = i, r = i + 1;
            while(l >= 0 && r < s.size() && s[l] == s[r])  l --, r ++;
            if(res.size() < r - l - 1)  res = s.substr(l + 1, r - l - 1);
        }
        return res;
    }
};

你可能感兴趣的:(leetcode,算法,枚举,暴力)