LeetCode

LeetCode-05 最长回文子串

nkul · 7月8日 · 2020年 256次已读
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++;
            //[l+1,r-1]是回文串
            if(r-l-1 > res.size()) 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++;
            //[l+1,r-1]是回文串
            if(r-l-1 > res.size()) res = s.substr(l+1,r-l-1);
        }
        return res;
    }
};

关于求最长回文子串,有专门算法《Manacher’s Algorithm

https://zhuanlan.zhihu.com/p/70532099
https://www.cxyxiaowu.com/2665.html


0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!