## [409\. Longest Palindrome](https://leetcode.com/problems/longest-palindrome/)
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
**Explanation:** The longest palindrome that can be built is "a", whose length is 1.
**Constraints:**
- `1 <= s.length <= 2000`
- `s` consists of lowercase **and/or** uppercase English letters only.
回傳最長迴文的長度
注意題目的字母是 case sensitive,`aA` 不被視為迴文
```cpp
class Solution {
public:
int longestPalindrome(string s) {
int mid = 0, res = 0;
unordered_map<char, int> freq;
for(auto& c : s) ++freq[c];
for(auto& f : freq) {
res += f.second;
if(f.second % 2 == 1) {
--res;
mid = 1;
}
}
return (mid == 1) ? ++res : res;
}
};
```
:::success
- 時間複雜度:$O(N)$
- 空間複雜度:$O(N)$
:::