【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;
    }
}
相关推荐
budingxiaomoli12 分钟前
Spring IoC &DI
java·spring·ioc·di
Spider Cat 蜘蛛猫14 分钟前
Springboot SSO系统设计文档
java·spring boot·后端
未若君雅裁19 分钟前
MySQL高可用与扩展-主从复制读写分离分库分表
java·数据库·mysql
学习中.........34 分钟前
从扰动函数的变化,感受红黑树带来的性能提升
java
️是781 小时前
信息奥赛一本通—编程启蒙(3395:练68.3 车牌问题)
数据结构·c++·算法
Liangwei Lin1 小时前
LeetCode 118. 杨辉三角
算法·leetcode·职场和发展
计算机安禾1 小时前
【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit
java·c++·算法
鼠鼠我(‘-ωก̀ )好困1 小时前
leetGPU
算法
我星期八休息1 小时前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
池塘的蜗牛1 小时前
A Low-Complexity Method for FFT-based OFDM Sensing
算法