ZBLOG

golang 实现最长回文子串

下面是使用Go语言实现的最长回文子串的代码示例:

func longestPalindrome(s string) string {
    if len(s) < 2 {
        return s
    }
    
    start, end := 0, 0
    
    for i := 0; i < len(s); i++ {
        len1 := expandAroundCenter(s, i, i)
        len2 := expandAroundCenter(s, i, i+1)
        length := max(len1, len2)
        
        if length > end-start {
            start = i - (length-1)/2
            end = i + length/2
        }
    }
    
    return s[start : end+1]
}

func expandAroundCenter(s string, left int, right int) int {
    L, R := left, right
    
    for L >= 0 && R < len(s) && s[L] == s[R] {
        L--
        R++
    }
    
    return R - L - 1
}

func max(a int, b int) int {
    if a > b {
        return a
    }
    
    return b
}

你可以调用 longestPalindrome 函数,将需要检测的字符串作为参数传入,即可获取到最长回文子串。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=17280

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?