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
}