【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;
    }
}
相关推荐
用户094248568031 分钟前
第31章:JVM字节码解释器与模板解释器源码路径
java·jvm
子非鱼a5 分钟前
【WEB】EasySSTI
java·开发语言·前端
在所不辞兄7 分钟前
选择隐式方法求解刚性ODE
算法
m0_5873830016 分钟前
深圳 24 小时自助健身房系统软件开发实战指南与案例解析
java·spring boot·小程序·架构·需求分析
码爸20 分钟前
贪心算法介绍与示例
算法·贪心算法
Nebula_g26 分钟前
JavaSE项目实践:红包雨-线程池/线程
java·开发语言
小羊没烦恼!27 分钟前
jQuery1.5的改进细节
java·服务器·开发语言·前端·c#
霸道流氓气质29 分钟前
Prompt 版本控制与 A/B 测试实战:语义版本管理、一致性哈希分流与 Thompson Sampling 的 Java 生产级实现
java·prompt·哈希算法
-dzk-38 分钟前
【多维动态规划】LC 64.最小路径和
算法·动态规划
嵌入式er1 小时前
影石系统组 一二面OC面经
java·开发语言