【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;
    }
}
相关推荐
程序员清风12 小时前
专业再升级!程序员专属显示器明基RD280UG上手实测!
java·后端·面试
(╹◡╹)13 小时前
18.剪枝
算法·机器学习·剪枝
Lam Tang14 小时前
APS 系列文章 08
java·代理模式
Fa_Mian_Tuan14 小时前
图论基础|邻接矩阵超详细讲解(含无向/有向/带权图+完整可运行C语言代码)
c语言·数据结构·笔记·算法·图论
hanhahai14 小时前
指针与函数(函数指针与指针函数)
算法
萧瑟余晖15 小时前
Java深入解析篇三十三之消息队列
java·开发语言
码匠许师傅15 小时前
【C++ 面试真题】聊聊 C++ 的序列容器
java·c++·面试
ValhallaCoder15 小时前
Leetcode-hot100(2026.08.17)
python·算法·leetcode
IT爱学堂15 小时前
尚硅谷Java+AI大模型应用开发革新版本 2025年3月
java·开发语言·人工智能
泡沫冰@15 小时前
GO 语言基础
开发语言·算法·golang