题目:
给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。
在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。
解法:
注意理解题意,aabbbccc最长回文串是7:aacccbb
func longestPalindrome(s string) int {
charCount := make(map[byte]int)
for i := range s {
charCount[s[i]]++
}
res := 0
odd := 0
for _, count := range charCount {
rem := count % 2
res = res + count - rem
if rem == 1 {
odd = 1
}
}
return res + odd
}