给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
    在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。
    注意:
    假设字符串的长度不会超过 1010。
    示例 1:

    1. 输入:
    2. "abccccdd"
    3. 输出:
    4. 7
    5. 解释:
    6. 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7
    class Solution {
    public:
        int longestPalindrome(string s) {
            unordered_map<char, int> hashMap;
            int res = 0;
    
            for(char c: s){
                hashMap[c]++;
            }
            unordered_map<char, int>::iterator it;
            bool flag = false;
            for(it = hashMap.begin(); it != hashMap.end(); it++){
                if(it->second % 2 == 0){
                    res += it->second;
                }else{
                    res += it->second - 1;
                    flag = true;
                }
            }
            return flag == true ? res + 1 : res;
        }
    };