『中心拓展法』题解 | #最长回文子串#

最长回文子串

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

显示的分奇数和偶数

//奇数
int odd( string A,int n, int Left, int Right )
{
    while( Left>=0 && Right<n && A[Left]==A[Right] )
    {
        --Left;
        ++Right;
    }
    return Right-Left-1;
}

//偶数
int even( string A,int n, int Left, int Right )
{
    while( Left>=0 && Right<n && A[Left]==A[Right] )
    {
        --Left;
        ++Right;
    }
    return Right-Left-1;
}

class Solution {
public:
    int getLongestPalindrome(string A, int n) {
        // write code here
        if( n<=1 ) return n;
        int res=1;//至少为1

        for( int mid=0; mid<n ; ++mid )
        {
            int Left=mid,Right=mid;
            int oddNum=odd( A, n, mid, mid);
            res=max( res, oddNum );
            int evenNum=even( A, n, mid, mid+1);
            res=max( res, evenNum );
        }

        return res;
    }
};
全部评论

相关推荐

AI牛可乐:哇,听起来你遇到了什么挑战呢!🐮牛可乐在这里,虽然小,但是勇敢又聪明,想听听你的具体情况哦!如果你愿意的话,可以点击我的头像给我私信,我们可以一起想办法应对挑战,好不好呀?🌟🎉
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务