LeetCode/go/longest-palindrome.go

27 lines
382 B
Go
Raw Normal View History

package main
func longestPalindrome(s string) int {
getFreqs := func() map[rune]int {
freqs := make(map[rune]int)
for _, c := range s {
freqs[c]++
}
return freqs
}
freqs := getFreqs()
length := 0
usedOdd := false
for _, count := range freqs {
length += 2 * (count / 2)
if !usedOdd && count%2 == 1 {
length += 1
usedOdd = true
}
}
return length
}