最長迴文子串 go實現
阿新 • • 發佈:2018-12-06
給定一個字串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度為 1000。
示例 1:
輸入: "babad"
輸出: "bab"
注意: "aba" 也是一個有效答案。
示例 2:
輸入: "cbbd"
輸出: "bb"
func longestPalindrome(s string) string { n:=len(s) if s=="" { return "" } if n==1 { return s } start:=0 maxLen:=0 for i:=0;i<n ; { if n-i<=maxLen/2 { break } left:=i right:=i for right<n-1&&s[right]==s[right+1] { right++ } i=right+1 for right<n-1&&left>0&&s[left-1]==s[right+1] { left-- right++ } newlen:=right-left+1 if newlen>maxLen { start=left maxLen=newlen } } return s[start:start+maxLen] }