# 409.longest-palindrome

## Statement

• Difficulty: Easy
• Tag: `贪心` `哈希表` `字符串`

``````输入:s = "abccccdd"

``````

``````输入:s = "a"

``````

``````输入:s = "bb"

``````

• `1 <= s.length <= 2000`
• `s` 只能由小写和/或大写英文字母组成

• Difficulty: Easy
• Tag: `Greedy` `Hash Table` `String`

Given a string `s` which consists of lowercase or uppercase letters, return the length of the longest palindrome that can be built with those letters.

Letters are case sensitive, for example, `"Aa"` is not considered a palindrome here.

Example 1:

``````Input: s = "abccccdd"
Output: 7
Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.
``````

Example 2:

``````Input: s = "a"
Output: 1
``````

Example 3:

``````Input: s = "bb"
Output: 2
``````

Constraints:

• `1 <= s.length <= 2000`
• `s` consists of lowercase and/or uppercase English letters only.

## Solution

``````from collections import Counter

class Solution:
def longestPalindrome(self, s: str) -> int:
c = Counter(s)
odd = 0
res = 0
for v in c.values():
res += v // 2 * 2
if v & 1:
odd = 1
return res + odd
``````