[LeetCode]409. Longest Palindrome
题目描述
思路
统计字符重复出现次数,然后将重复出现次数除以2向下取整,结果乘2。计算所有重复字符的结果后和远字符串长度进行比较,若小于远字符串,将结果加1,回文串最中间的字符可以是一个单独出现的字符。
代码
class Solution {
public:
int longestPalindrome(string s) {
int count = 0, len = s.size();
unordered_map<char, int> charMap;
for (int i = 0; i < len; ++i){
char temp = s[i];
++charMap[temp];
}
for (auto &p : charMap) {
count += (int)(p.second / 2) * 2;
}
if (count < len) {
++count;
}
return count;
}
};