题解 | #最长的回文子串# go实现

最长的回文子串

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

go

func longestPalindrome( s string ) string {
    // write code here
    if len(s) == 0 {
        return s
    }

    max := 0
    ret := ""

    var check func(l, r int)
    check = func(l, r int) {
//      验证回文
        for l >= 0 && r < len(s) {
            if s[l] != s[r] {
                break
            }
            l--
            r++
        }

//      当前回文串长度
        ll := r - l + 1
        if ll > max {
//          大于最大长度,则记录下来
            max = ll
            ret = s[l+1:r]
        }
    }


    for i:=0; i < len(s); i++{
        check(i,i)
        check(i, i+1)
    }

    return ret
}
全部评论

相关推荐

在写周报的打工人很独...:这个笔试昨天晚上做了一下,真难啊,前后端,ai全有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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