409. Longest Palindrome
Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.
This is case sensitive, for example"Aa"is not considered a palindrome here.
Note: Assume the length of given string will not exceed 1,010.
Example:
Input:"abccccdd"
Output:7
Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.Thoughts:
- Total len - number of odds + 1 (indicator of whether odds > 0) 
Code: Python
class Solution(object):
    def longestPalindrome(self, s):
        odds = sum(v & 1 for v in collections.Counter(s).values())
        return len(s) - odds + bool(odds)Code: Python with counting even number (slower)
class Solution(object):
    def longestPalindrome(self, s):
        even = sum(v & ~1 for v in collections.Counter(s).values())
        return even + (even < len(s))Last updated
Was this helpful?