题解 | #最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af

方法:循环遍历

1、遍历数组,以数组每个元素为中心寻找最长的回文子串长度;

2、遍历完数组就能得到最长的回文子串。

时间复杂度:o(n2)

空间复杂度:o(1)

class Solution {
  public:
    int getLongestPalindrome(string A) {
        // 特殊情况处理
        if (A.length() == 1)
            return 1;

        int max_len = 1;
        for (int i = 0; i < A.length() - 1; i++) {
            // 分奇数和偶数区寻找最长的回文子串长度
            max_len = max(max_len, max(getLen(A, i, i), getLen(A, i, i + 1)));
        }

        return max_len;
    }

    int getLen(string& A, int begin, int end) {
        while (begin >= 0 && end < A.length() && A[begin] == A[end]) {
            begin--;
            end++;
        }
        return end - begin - 1;
    }
};

刷题题解(c++) 文章被收录于专栏

算法题题解(c++)

全部评论

相关推荐

合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。 个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。 投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务