【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;
    }
}
相关推荐
吴声子夜歌8 分钟前
Guava——并发(一)
java·guava
CYLAM20259 分钟前
STC32G12K128单片机实现高精度算法及常用初等函数值的计算
算法
天空属于哈夫克311 分钟前
企业微信API:企业微信如何实现自动化运营?
java·自动化·企业微信
奶人五毛拉人一块18 分钟前
动态规划--子数组类型
算法·动态规划·子数组问题
lhldsg20 分钟前
相册印刷实战指南:从设计规范到系统落地全流程解析
java·小程序·架构·设计规范
HugoStudio_SWAN22 分钟前
洛谷 P1321 单词覆盖还原——从蜡板上的密信到数字水印
c++·学习·程序人生·算法
草青工作室22 分钟前
java-不携带Token也能“打“自己的接口:一个绕开网关鉴权、用 URL 直接调度 SpringMVC 方法的轻量级定时任务方案
java·开发语言
霸道流氓气质29 分钟前
Spring AI提示词模板与动态变量替换
java·python·spring
Object_SC31 分钟前
java 中的泛型
java
s_w.h44 分钟前
【 linux 】线程互斥与同步
java·linux·服务器·开发语言