HashMap. Time=O(n), space=O(n)
class Solution {
public int longestPalindrome(String s) {
int longestPalindrome = 0;
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
map.put(c, map.getOrDefault(c, 0) + 1);
}
boolean flag = false;
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
if (entry.getValue() % 2 == 0) {
longestPalindrome += entry.getValue();
} else {
if (!flag) {
longestPalindrome += entry.getValue();
flag = true;
} else {
longestPalindrome += entry.getValue() - 1;
}
}
}
return longestPalindrome;
}
}