Не понимаю, почему не проходит первый пункт, когда по сути все сделано верно. Если нечетных значений в мапе > 1, то строка не может быть палиндромом, если меньше, то палиндром. Объясните для глупых что здесь не так?)
package com.javarush.task.task39.task3908;
/*
Возможен ли палиндром?
*/
import java.util.HashMap;
import java.util.Map;
public class Solution {
public static void main(String[] args) {
System.out.println(isPalindromePermutation("abab"));
System.out.println(isPalindromePermutation("abcde"));
System.out.println(isPalindromePermutation("ababac"));
System.out.println(isPalindromePermutation("abcabc"));
}
public static boolean isPalindromePermutation(String s) {
Map<Character, Integer> storage = new HashMap<>();
String temp = s.toLowerCase();
for (int i = 0; i < temp.length(); i++) {
char c = temp.charAt(i);
if (!storage.containsKey(c)) {
storage.put(c, 1);
} else {
storage.computeIfPresent(c, Integer::sum);
}
}
return storage.values().stream().filter(v -> v % 2 != 0).count() <= 1;
}
}