【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;
    }
}
相关推荐
jndingxin23 分钟前
OpenCV CUDA模块光流计算-----实现Farneback光流算法的类cv::cuda::FarnebackOpticalFlow
人工智能·opencv·算法
hymuuuu27 分钟前
【最新案例】智能物料称重柜/生鲜称重售卖柜系统, 共享自助管理系统, 物联网应用定制开发
java
编程绿豆侠35 分钟前
力扣HOT100之栈:394. 字符串解码
java·算法·leetcode
朝朝又沐沐43 分钟前
基于算法竞赛的c++编程(18)string类细节问题
开发语言·c++·算法
hstar95271 小时前
三十四、面向对象底层逻辑-SpringMVC九大组件之FlashMapManager接口设计哲学
java·spring·设计模式·架构
yuren_xia1 小时前
Spring MVC执行流程简介
java·spring·mvc
记得早睡~1 小时前
leetcode73-矩阵置零
数据结构·leetcode·矩阵
黄雪超1 小时前
JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?
java·开发语言·jvm
凌冰_1 小时前
Tomcat 安装和配置
java·tomcat
一只叫煤球的猫1 小时前
虚拟线程生产事故复盘:警惕高性能背后的陷阱
java·后端·性能优化