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;
}