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
    }
}
相关推荐
u0109272713 分钟前
代码覆盖率工具实战
开发语言·c++·算法
计算机毕设指导64 分钟前
基于微信小程序的智能停车场管理系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
码云数智-大飞6 分钟前
零拷贝 IPC:用内存映射文件打造 .NET 高性能进程间通信队列
java·开发语言·网络
懈尘9 分钟前
深入理解Java的HashMap扩容机制
java·开发语言·数据结构
indexsunny9 分钟前
互联网大厂Java面试实战:从Spring Boot到Kafka的技术与业务场景解析
java·spring boot·redis·面试·kafka·技术栈·microservices
roman_日积跬步-终至千里11 分钟前
【Java并发】Tomcat 与 Spring:后端项目中的线程与资源管理
java·spring·tomcat
独自破碎E12 分钟前
IDEA 提示“未配置SpringBoot配置注解处理器“的解决方案
java·spring boot·intellij-idea
yqd66613 分钟前
RabbitMQ用法和面试题
java·开发语言·面试
We་ct14 分钟前
LeetCode 73. 矩阵置零:原地算法实现与优化解析
前端·算法·leetcode·矩阵·typescript
天赐学c语言14 分钟前
2.1 - 反转字符串中的单词 && 每个进程的内存里包含什么
c++·算法·leecode