1 贪心算法
class Solution {
public:
int longestPalindrome(string s) {
map<char, int> ch2cnt;
for (auto& ch : s) ch2cnt[ch]++;
int count = 0;
// 是否有奇数
int isOdd = false;
for (auto& m : ch2cnt)
// 1.偶数直接加
if (m.second % 2 == 0) count += m.second;
// 2.奇数自减1,并且标记有过奇数
else if (m.second % 2 == 1) {
count += m.second - 1;
isOdd = true;
}
return isOdd ? count + 1 : count;
}
};