版权声明:原创勿转 https://cloud.tencent.com/developer/article/1412973
题目的要求里有两个要注意的:
1.大小写敏感
2.不要求顺序
有两种情况可以组成回文
一个字母出现多次,那么最大偶数次的部分可以组成(v/2*2)
当前结果是偶数个字母的时候,可以和一个出现奇数次的字母组成回文
func longestPalindrome(s string) int {
count := make([]int, 128)
for _, c := range s {
count[c]++
}
ans := 0
for _, v := range count {
ans += v / 2 * 2
if ans%2 == 0 && v%2 == 1 {
ans++
}
}
return ans
}