import java.util.*;
class TargetWordCount {
// Create frequency maps for s and t
int[] sFreq = new int[26];
int[] tFreq = new int[26];
for (char c : s.toCharArray()) {
sFreq[c - 'a']++;
}
for (char c : t.toCharArray()) {
tFreq[c - 'a']++;
}
// Find the maximum count of the target word
for (int i = 0; i < 26; i++) {
if (tFreq[i] > 0 && sFreq[i] > 0) {
maxCount
= Math.
min(maxCount, sFreq
[i
] / tFreq
[i
]); } else if (tFreq[i] > 0) {
return 0;
}
}
//using hashmaps
/*
for (char c : s.toCharArray()) {
freqS.put(c, freqS.getOrDefault(c, 0) + 1);
}
for(char c : t.toCharArray()){
freqT.put(c, freqT.getOrDefault(c , 0) + 1);
}
int max=Integer.MAX_VALUE;
for(char c : freqT.keySet()){
if (freqS.containsKey(c)){
max = Math.min( max, freqS.get(c)/freqT.get(c));
}
else{
return 0;
}
}
*/
return maxCount;
}
public static void main
(String[] args
) { System.
out.
println(maxTargetWordCount
(s, t
)); // Output: 2 }
}
aW1wb3J0IGphdmEudXRpbC4qOwpjbGFzcyBUYXJnZXRXb3JkQ291bnQgewogICAgcHVibGljIHN0YXRpYyBpbnQgbWF4VGFyZ2V0V29yZENvdW50KFN0cmluZyBzLCBTdHJpbmcgdCkgewogICAgICAgIC8vIENyZWF0ZSBmcmVxdWVuY3kgbWFwcyBmb3IgcyBhbmQgdAogICAgICAgIGludFtdIHNGcmVxID0gbmV3IGludFsyNl07CiAgICAgICAgaW50W10gdEZyZXEgPSBuZXcgaW50WzI2XTsKICAgICAgICBmb3IgKGNoYXIgYyA6IHMudG9DaGFyQXJyYXkoKSkgewogICAgICAgICAgICBzRnJlcVtjIC0gJ2EnXSsrOwogICAgICAgIH0KICAgICAgICBmb3IgKGNoYXIgYyA6IHQudG9DaGFyQXJyYXkoKSkgewogICAgICAgICAgICB0RnJlcVtjIC0gJ2EnXSsrOwogICAgICAgIH0KCiAgICAgICAgLy8gRmluZCB0aGUgbWF4aW11bSBjb3VudCBvZiB0aGUgdGFyZ2V0IHdvcmQKICAgICAgICBpbnQgbWF4Q291bnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI2OyBpKyspIHsKICAgICAgICAgICAgaWYgKHRGcmVxW2ldID4gMCAmJiBzRnJlcVtpXSA+IDApIHsKICAgICAgICAgICAgICAgIG1heENvdW50ID0gTWF0aC5taW4obWF4Q291bnQsIHNGcmVxW2ldIC8gdEZyZXFbaV0pOwogICAgICAgICAgICB9IGVsc2UgaWYgKHRGcmVxW2ldID4gMCkgewogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy91c2luZyBoYXNobWFwcwogICAgICAgIC8qCiAgICAgICAgZm9yIChjaGFyIGMgOiBzLnRvQ2hhckFycmF5KCkpIHsKICAgICAgICAgICAgZnJlcVMucHV0KGMsIGZyZXFTLmdldE9yRGVmYXVsdChjLCAwKSArIDEpOwogICAgICAgIH0KICAgICAgICBmb3IoY2hhciBjIDogdC50b0NoYXJBcnJheSgpKXsKICAgICAgICAgICAgZnJlcVQucHV0KGMsIGZyZXFULmdldE9yRGVmYXVsdChjICwgMCkgKyAxKTsKICAgICAgICB9CiAgICAgICAgaW50IG1heD1JbnRlZ2VyLk1BWF9WQUxVRTsKICAgICAgICBmb3IoY2hhciBjIDogZnJlcVQua2V5U2V0KCkpewogICAgICAgICAgICBpZiAoZnJlcVMuY29udGFpbnNLZXkoYykpewogICAgICAgICAgICAgICAgbWF4ID0gTWF0aC5taW4oIG1heCwgZnJlcVMuZ2V0KGMpL2ZyZXFULmdldChjKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICovCgogICAgICAgIHJldHVybiBtYXhDb3VudDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU3RyaW5nIHMgPSAibW9ub25vbSI7CiAgICAgICAgU3RyaW5nIHQgPSAibW9uIjsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obWF4VGFyZ2V0V29yZENvdW50KHMsIHQpKTsgLy8gT3V0cHV0OiAyCiAgICB9Cn0K