// 2287. Rearrange Characters to Make Target String
class Solution {
public int rearrangeCharacters(String s, String target) {
char[] charsTarget = target.toCharArray();
int[] needs = new int[123];
for (char c : charsTarget) {
++needs[c];
}
char[] charsS = s.toCharArray();
int[] material = new int[123];
for (char c : charsS) {
++material[c];
}
int ans = Integer.MAX_VALUE;
for (char i = 'a'; i <= 'z'; ++i) {
if (needs[i] != 0) {
ans = Math.min(ans, material[i] / needs[i]);
}
}
return ans;
}
}
学习笔记:
这是一道计数的题目,可以用哈希表但是没有必要,直接拿数组来解决就最快了。
把需要的和拥有的材料数量统计一遍,然后除一下取最小值即可。