package main import ( "fmt" ) func main() { str := "" fmt.Scan(&str) ans := 1 // 中心扩散写法 for i := 0; i < len(str); i++ { ans = max(ans, huiwen(str, i)) } fmt.Println(ans) } // 返回由center中心扩散出去的最大回文串长度 func huiwen(s string, center int) int { ans := 1 i, j := center, center for i, j = center, center; i >= 0 && j < len(s) && s[i] == s[j]; i, j = i-1, j+1 {} ans = max(ans, j-i-1) for i, j = center, center+1; i >= 0 && j < len(s )&& s[i] == s[j]; i, j = i-1, j+1 {} ans = max(ans, j-i-1) return ans } func max(a, b int) int { if a > b { return a } return b }