LeetCode #5 简单题

Posted error408

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode #5 简单题相关的知识,希望对你有一定的参考价值。

题目:求最长回文子串

题解:manacher算法,百度一堆讲解- -,我也不说了,想知道啥的自己百度去吧

class Solution {
public:
    string longestPalindrome(string s) {
        string manaStr = "$#";
        for (int i=0;i<s.size();i++){
            manaStr += s[i];
            manaStr += #;
        }
        vector<int> rd(manaStr.size(), 0);
        int pos = 0, mx = 0;
        int start = 0, maxLen = 0;
        for (int i = 1; i < manaStr.size(); i++) {
            rd[i] = i < mx ? min(rd[2 * pos - i], mx - i) : 1;
            while (i+rd[i]<manaStr.size() && i-rd[i]>0 && manaStr[i + rd[i]] == manaStr[i - rd[i]])
                rd[i]++;
                if (i + rd[i] > mx){
                    pos = i;
                    mx = i + rd[i];
                }
                if (rd[i] - 1 > maxLen){
                    start = (i - rd[i]) / 2;
                    maxLen = rd[i] - 1;
                }
            }
        return s.substr(start, maxLen);
    }
};

 

以上是关于LeetCode #5 简单题的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 简单第四十一题 阶乘后的零

力扣(LeetCode)刷题,简单+中等题(第34期)

力扣(LeetCode)刷题,简单+中等题(第34期)

力扣(LeetCode)刷题,简单+中等题(第36期)

leetcode刷题5.有效的括号——Java版

LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段