leetcode_383. 赎金信_java

383. 赎金信https://leetcode.cn/problems/ransom-note/

1、题目

给你两个字符串:ransomNotemagazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false

magazine 中的每个字符只能在 ransomNote 中使用一次。

示例 1:

复制代码
输入:ransomNote = "a", magazine = "b"
输出:false

示例 2:

复制代码
输入:ransomNote = "aa", magazine = "ab"
输出:false

示例 3:

复制代码
输入:ransomNote = "aa", magazine = "aab"
输出:true

提示:

  • 1 <= ransomNote.length, magazine.length <=
  • ransomNotemagazine 由小写英文字母组成

2、题解

java 复制代码
class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {

        int[] record = new int[26];  // 记录每个字母的出现次数

        // 遍历 magazine,统计每个字母的出现次数
        for (int i = 0; i < magazine.length(); i++) {
            record[magazine.charAt(i) - 'a']++;
        }

        // 遍历 ransomNote,减少对应字母的次数
        for (int i = 0; i < ransomNote.length(); i++) {
            record[ransomNote.charAt(i) - 'a']--;
        }

        // 检查是否有字母的数量小于零,若有,表示无法构造 ransomNote
        for (int i = 0; i < 26; i++) {
            if (record[i] < 0) {
                return false;
            }
        }

        return true;  // 如果所有字母数量都大于等于零,返回 true
    }
}
相关推荐
yaoxin5211239 分钟前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
Yzzz-F2 小时前
Problem - 2205D - Codeforces
算法
极客先躯2 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户60648767188962 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java
我命由我123452 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime
aXin_ya2 小时前
微服务第八天 Sentinel 四种分布式事务模式
java·数据库·微服务
智者知已应修善业2 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
Halo_tjn3 小时前
Java Set集合相关知识点
java·开发语言·算法
Linsk3 小时前
Java和JavaScript的关系真是雷峰和雷峰塔的关系吗?
java·javascript·oracle
许彰午3 小时前
我手写了一个 Java 内存数据库(二):B+ 树的插入与分裂
java·开发语言·面试