• + 0 comments

    static int anagram(String s) { int result = 0; Map map = new HashMap();

        if (s.length() % 2 != 0) {
            return -1;
        } else {
            int half = s.length() / 2;
            for (int k = 0; k < half; k++) {
                char letter = s.charAt(k);
    
                if (!map.containsKey(letter)) {
                    map.put(letter, 1);
                } else {
                    Integer frequency = map.get(letter);
                    map.put(letter, ++frequency);
                }
            }
    
            for (Map.Entry<Character, Integer> entry : map.entrySet()) {
                System.out.println(entry.getKey() + " " + entry.getValue());
            }
    
            for (int k = half; k < s.length(); k++) {
                char letter = s.charAt(k);
                //System.out.println("a doua jumatate este:");
                //System.out.println(letter);
    
                if (!map.containsKey(letter)) {
                    result++;
                } else {
                    Integer freq = map.get(letter);
                    freq--;
                    map.put(letter, freq);
    
                }
    
            }
    
    
    
            for (Map.Entry<Character, Integer> entry : map.entrySet()) {
                System.out.println(entry.getKey() + " " + entry.getValue());
            }
    
            return result;
    
        }
    }
    

    for String xaxbbbxx I obtain 0.

    Can someone one say me why?