import java.util.HashMap;
class Solution {
public int longestPalindrome(String s) {
HashMap<Integer, Integer> letterCount = new HashMap<>();
s.chars().forEach((x) -> letterCount.merge(x, 1, Integer::sum));
int longestPalindromeLength = 0;
boolean encounteredTokenWithSingleCount = false;
for (HashMap.Entry<Integer, Integer> entry: letterCount.entrySet()) {
int v = entry.getValue();
int k = entry.getKey();
System.out.println("Key: " + (char)k + " , Value: " + v);
if (v % 2 == 0) {
System.out.println("Considered Key: " + (char)k);
longestPalindromeLength += v;
} else {
longestPalindromeLength += v - 1;
if (!encounteredTokenWithSingleCount) {
encounteredTokenWithSingleCount = true;
longestPalindromeLength++;
}
}
}
return longestPalindromeLength;
}
}
public class LongestPalindrome {
public static void main(String[] args) {
Solution solution = new Solution();
int x = solution.longestPalindrome("abccccdd");
System.out.println(x);
}
}