Daily LeetCode – day0168 2287. Rearrange Characters to Make Target String

// 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;
    }
}
学习笔记:
这是一道计数的题目,可以用哈希表但是没有必要,直接拿数组来解决就最快了。
把需要的和拥有的材料数量统计一遍,然后除一下取最小值即可。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注