plduhoux
2/23/2018 - 9:03 PM

stringsConstruction

int stringsConstruction(String a, String b) {
    Map<Character, Integer> count = new HashMap<>();
    for (char c : b.toCharArray()) {
        if (count.containsKey(c)) count.put(c, count.get(c) + 1);
        else count.put(c, 1);
    }
    Map<Character, Integer> counta = new HashMap<>();
    for (char c : a.toCharArray()) {
        if (counta.containsKey(c)) counta.put(c, counta.get(c) + 1);
        else counta.put(c, 1);
    }
    int min = b.length();
    for (char c : a.toCharArray()) {
        if (!count.containsKey(c)) {min = 0; break;}
        min = Math.min(min, count.get(c) / counta.get(c));
    }
    return min;
}