【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;
    }
}
相关推荐
郝学胜-神的一滴14 小时前
力扣 144:二叉树前序遍历的优雅实现
java·数据结构·c++·python·算法·leetcode·职场和发展
摇滚侠14 小时前
CSDN AI 数字营销测评 专家标注
java
长河14 小时前
APISIX
java·网络
go不是csgo14 小时前
Go-GMP-调度器深度解析(改进版本)
java·linux·golang
轮子飞了14 小时前
基于 Spring AI + Milvus 的 RAG 混合检索实战
java
risc12345614 小时前
【Lucene】理解不是看见光,而是让眼睛适应黑暗
java·开发语言
小谢小哥14 小时前
62-Maven核心详解
java·后端·架构
MegaDataFlowers14 小时前
543.二叉树的直径
算法
方也_arkling15 小时前
【Java-Day16】API篇-Math类/System类/Object类/包装类
java·开发语言
Kurisu57515 小时前
深度拆解:从 CPU 乱序执行到内存屏障,无锁编程的底层防线
算法