NC17.最长回文子串

最长回文子串

https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af?tpId=196&rp=1&ru=%2Fexam%2Foj&qru=%2Fexam%2Foj&sourceUrl=%2Fexam%2Foj%3Ftab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196&difficulty=&judgeStatus=&tags=&title=&gioEnter=menu

NC17.最长回文子串

class Solution {
public:
    int getLongestPalindrome(string A) {
        int rst = 0;
        int len = (int)A.length();
        for (int i = 0; i < len - rst; ++i) {
            for (int j = len - 1; j >= i; --j) {
                if (isPalindrome(A, i, j)) {
                    rst = max(rst, abs(j - i + 1));
                }
            }
        }
        return rst;
    }
private:
    bool isPalindrome(const string& s, int l, int r) {
        while (l < r) {
            if (s[l++] != s[r--]) {
                return false;
            }
        }
        return true;
    }
};

解题思路:

难点1:isPalindrome的抽象;

难点2:双指针的抽象;

难点3:len - rst进行优化,不用遍历完所有字符,如果最后剩下的字符数量小于rst就不用遍历了;

全部评论

相关推荐

03-28 19:11
铜陵学院 C++
有礼貌的山羊追赶太阳:太典了,连笔试都没有开始就因为HC满了而结束了,而且还卡你不让你再投其他部门的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务