Making Anagrams

  • + 0 comments

    Java:

    public static int makingAnagrams(String s1, String s2) {
        Map<Character, Integer> s1Map = new HashMap<>();
        Map<Character, Integer> s2Map = new HashMap<>();
        int delCount = 0;
        for (char c : s1.toCharArray()) {
            s1Map.merge(c, 1, (a,b) -> a + b);
        }
        for (char c : s2.toCharArray()) {
            s2Map.merge(c, 1, (a,b) -> a + b);
        }
        for (Map.Entry<Character, Integer> e : s1Map.entrySet()) {
            if (e.getValue() > s2Map.getOrDefault(e.getKey(),0)) {
                delCount += e.getValue() - s2Map.getOrDefault(e.getKey(),0);
            }
        }
        for (Map.Entry<Character, Integer> e : s2Map.entrySet()) {
            if (e.getValue() > s1Map.getOrDefault(e.getKey(),0)) {
                delCount += e.getValue() - s1Map.getOrDefault(e.getKey(),0);
            }
        }
        return delCount;
    }