首页 > 其他 > 详细

005_最长回文子串

时间:2020-06-30 11:19:56      阅读:62      评论:0      收藏:0      [点我收藏+]

知识点:回文

LeetCode第五题:https://leetcode-cn.com/problems/longest-palindromic-substring/solution/

语言:GoLang

// 判断“以某个字符为中心的字符串”是不是回文
// 遍历字符串中,每个字符作为中心的情况,寻找每个情况下最长的字符,即为答案
func longestPalindrome(s string) string {
    length := len(s)
    if length < 2 {
        return s
    }

    res := ""
    for i := 0; i < length - 1; i++ {
        res = maxLength(res, palindrome(s, i, i))
        res = maxLength(res, palindrome(s, i, i + 1))
    }
    return res
}

func palindrome(s string, left int, right int) string {
    length := len(s)
    for 0 <= left && right < length {
        if s[left] == s[right] {
            left--
            right++
        }else {
            break
        }
    }
    return s[left + 1 : right]
}

func maxLength(s1 string, s2 string) string {
    if len(s1) > len(s2) {
        return s1
    }
    return s2
}

005_最长回文子串

原文:https://www.cnblogs.com/cenyol/p/13212267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!