【leetcode】383. 赎金信(easy)

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

java 复制代码
class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        HashMap<Character,Integer> hm = new HashMap<>();
        for(int i=0;i<magazine.length();i++){
            char a = magazine.charAt(i);
            if(hm.containsKey(a))
                hm.put(a, hm.get(a)+1);
            else
                hm.put(a,0);
        }

        for(int i=0; i<ransomNote.length(); i++){
            char b = ransomNote.charAt(i);
            // hm不包含b, 返回false
            if(!hm.containsKey(b))
                return false;
            // hm包含b, 若可使用次数不足, 返回false
            if(hm.get(b)<0)
                return false;
            // hm包含b且可使用,更新可使用次数
            hm.put(b, hm.get(b)-1);
        }
        return true;
    }
}
相关推荐
To_OC4 小时前
LC 49 字母异位词分组:想到哈希表很简单,选对 key 才是精髓
javascript·算法·leetcode
小bo波8 小时前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking9 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
用户938515635079 小时前
从 O(n²) 到 O(nlogn):一文读懂快速排序的“快”与“妙”
javascript·算法
To_OC10 小时前
手写快排次次翻车?别死背快排模板了,这才是面试官想听的底层逻辑
javascript·算法·排序算法
饼干哥哥11 小时前
Reddit VOC调研太慢?搭一个AI专家团队半小时洞察任何品类|以猫用饮水机为例
人工智能·算法·ai编程
张不才12 小时前
CPU 100% 了怎么办?Java 性能排障的标准化操作
java·后端
地平线开发者12 小时前
Transformer模型部署之性能优化指南
算法
地平线开发者13 小时前
人在途中:从“编译失败”到“模型可落地”——CUDA 自定义算子
算法·自动驾驶
shepherd11113 小时前
吞吐量提升 10 倍:高并发大批量数据处理任务的架构演进与性能调优
java·后端·架构