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
    }
}
相关推荐
合方圆~小文7 分钟前
球型摄像机作为现代监控系统的核心设备
java·数据库·c++·人工智能
north_eagle23 分钟前
向量搜索技术深度研究报告:架构原理、核心算法与企业级应用范式
算法·架构
椎49528 分钟前
苍穹外卖资源点整理+个人错误解析-Day10-订单状态定时处理(Spring Task)、来单提醒和客户催单
java·后端·spring
Y***h18734 分钟前
eclipse配置Spring
java·spring·eclipse
東雪木34 分钟前
变量与数据类型
java·开发语言
p***629937 分钟前
CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞复现
java·后端·spring
Lisonseekpan37 分钟前
Java分词器深度评测与实战指南
java·开发语言·后端
饕餮争锋1 小时前
Kotlin: [Internal Error] java.lang.NoSuchFieldError: FILE_HASHING_STRATEGY
java·kotlin
明洞日记1 小时前
【设计模式手册014】解释器模式 - 语言解释的优雅实现
java·设计模式·解释器模式
椰萝Yerosius1 小时前
[题解]2024CCPC郑州站——Z-order Curve
c++·算法