【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 小时前
在.net中读写config文件的各种方法
java·数据库·.net
tachibana212 小时前
hot100 回文链表(234)
java·网络·数据结构·leetcode·链表
可编程芯片开发12 小时前
基于FOC控制器的BLDC无刷直流电机控制系统matlab编程与仿真
算法
可乐ea12 小时前
【Java八股|第10篇】Java 中的包装类和自动拆装箱
java·面试题·包装类·java八股
zfoo-framework13 小时前
mongo最佳实战(from mongo中文社区)
java
aaaameliaaa13 小时前
进制练习题【找出只出现一次的数字、交换两个变量(不创建临时变量)、统计二进制中1的个数、打印整数二进制的奇数位和偶数位、求两个数二进制中不同位的个数】
c语言·数据结构·笔记·算法
深盾科技_Virbox13 小时前
加密狗授权能力选型:从授权模型到全生命周期管理
java·网络·数据库
. . . . .14 小时前
Egg框架深入
java·开发语言
RainCity14 小时前
Java Swing 自定义组件库分享(十三)
java·笔记·后端
QiLinkOS14 小时前
第三视觉理解徐玉生与他的商业活动(28)
大数据·c++·人工智能·算法·开源协议