最长回文子串
使用中心拓展算法
核心就是从中间向两边进行一个判断
func longestPalindrome(s string) string {
if len(s) == 0 {
return ""
}
start,end := 0,0
for i:=0;i<len(s);i++{
len1 := expendAroundCentor(s,i,i)
len2 := expendAroundCentor(s,i,i+1)
maxLen := max(len1,len2)
if maxLen > end-start {
start = i-(maxLen-1)/2
end = i+maxLen/2
}
}
return s[start,end+1]
}
func max(a ,b int) int {
if a > b {
return a
}
return b
}
func expendAroundCentor(s string ,left,right int) int {
for left>=0&&right<len(s)&&s[left] == s[right]{
left--
right++
}
return right-left-1
}