409.最长回文串

87 阅读1分钟

题目:
给定一个包含大写字母和小写字母的字符串 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
}