12345678910111213141516171819202122232425 |
- func longestPalindrome(s string) (l int) {
- freq := make([]int, 256)
- for _, r := range s {
- freq[r]++
- }
- hasOdd := false
- for i := 'a'; i <= 'z'; i++ {
- l += freq[i]
- if freq[i]&1 == 1 {
- l--
- hasOdd = true
- }
- }
- for i := 'A'; i <= 'Z'; i++ {
- l += freq[i]
- if freq[i]&1 == 1 {
- l--
- hasOdd = true
- }
- }
- if hasOdd {
- return l + 1
- }
- return
- }
|