【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;
    }
}
相关推荐
学长毕设3 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw4 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
UIU1145 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
源码集结号5 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场5 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi5 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
啃瓜子的松鼠5 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David6 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放6 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog6 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友