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
    }
}
相关推荐
️是78几秒前
信息奥赛一本通(4005:【GESP2306一级】时间规划)
数据结构·c++·算法
tankeven1 分钟前
HJ174 交换到最大
c++·算法
AI科技星3 分钟前
基于v≡c第一性原理:密度的本质与时空动力学
人工智能·学习·算法·机器学习·数据挖掘
kishu_iOS&AI3 分钟前
机器学习 —— 聚类算法
人工智能·算法·机器学习·聚类
hope_wisdom4 分钟前
C/C++数据结构之树
数据结构·c++·二叉树·
rannn_1117 分钟前
【Redis|高级篇1】分布式缓存|持久化(RDB、AOF)、主从集群、哨兵、分片集群
java·redis·分布式·后端·缓存
FluxMelodySun10 分钟前
机器学习(三十一) 半监督SVM与图半监督学习
人工智能·算法·机器学习
PD我是你的真爱粉10 分钟前
Redis 持久化、过期删除、淘汰策略与内存碎片全解析
java·redis·bootstrap
Percep_gan16 分钟前
在芋道自定义数据权限
java·数据库
哆啦阿梦16 分钟前
Java AI 应用工程师 - 完整技能清单
java·开发语言·人工智能