题解 | #最长回文子串#

最长回文子串

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

中心扩散法。注意中心值奇数偶数个的问题

/**
* NC17 最长回文子串 获取最长回文子串;回文子串:正反读相同;
* @param str
* @param n
* @return
*/

    public int getLongestPalindrome(String str, int n) {
        // write code here
        char[] chars = str.toCharArray();
        int res=0;
        for (int i = 1; i < n; i++) {
            res=Math.max(res,expandAroundCenter(chars,i,i));
            res=Math.max(res,expandAroundCenter(chars,i,i+1));
        }
        return res;
    }
private int expandAroundCenter(char[] s,int left,int right){
    int l=left,r=right;
    while (l>=0&&r<s.length&&s[l]==s[r]){
        l--;
        r++;
    }
    return r-l-1;
}
全部评论

相关推荐

千千倩倩:简历问题有点多,加v细聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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