题解 | #最长回文子串#

最长回文子串

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

题意:

对于长度为n的一个字符串A(仅包含数字,大小写英文字母),请设计一个高效算法,计算其中最长回文子串的长度。


方法:
中心拓展法

思路:
        遍历,以字符串的每个字符作为中心,向左右两边拓展,寻找最长回文子串的长度。
        分为两种情况:
                                1)以A[i]作为中心
                                2)先判断A[i-1]==A[i],如果相等,A[i-1]和A[i]作为中心



class Solution {
public:
    
    int getLongestPalindrome(string A) {
        int res=0;
        int len=A.size();
        for(int i=0;i<len;i++){//遍历字符串
            int j=i-1,k=i+1;//以A[i]作为中心
            while(j>=0&&k<len){
                if(A[j]!=A[k])
                    break;
                j--;
                k++;
            }
            res=max(res,k-j-1);
            if(i-1>=0&&A[i-1]==A[i]){//先判断A[i-1]==A[i],如果相等,A[i-1]和A[i]作为中心
                j=i-2;
                k=i+1;
                while(j>=0&&k<len){
                    if(A[j]!=A[k])
                        break;
                    j--;
                    k++;
                }
                res=max(res,k-j-1);
            }
        }
        return res;
    }
};



时间复杂度:
空间复杂度:


全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
秋招吐槽大会
点赞 评论 收藏
分享
安静的鲸鱼offer...:神仙级别hr,可遇不可求,甚至他可能也是突然有感而发。只能说遇上是件幸事。
秋招开始捡漏了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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