## [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)$ :::