LeetCode--383.赎金信(哈希表)

题目描述

给你两个字符串: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 <= 105
  • ransomNotemagazine 由小写英文字母组成

代码

java 复制代码
class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        
        // 边界条件判断
        if(ransomNote.length()>magazine.length()) return false;

        int[] result = new int [26];
        // 将字符串转化为字符数组
        char[] ransomArray = ransomNote.toCharArray();
        char[] magazineArray = magazine.toCharArray();


        for(char i : ransomArray){
            // 通过result表记录每个字符出现的次数
            result[i-'a']++;
        }

        for(char i : magazineArray){
            result[i-'a']--;
        }

        // 统计所有字符出现个数之差,若有ransom比magazine多则返回false
        for(int i : result){
            if(i>0) return false;
        }
        return true;

    }
}
相关推荐
贺小涛8 小时前
VictoriaMetrics深度解析
java·网络·数据库
xiaoye-duck8 小时前
《算法题讲解指南:动态规划算法--子数组系列》--23.等差数列划分,24.最长湍流子数组
c++·算法·动态规划
疯狂打码的少年8 小时前
【Day02 Java转Python】Python的ArrayList: list与tuple的“双面人生
java·python·list
派大星~课堂8 小时前
【力扣-141. 环形链表 ✨】Python笔记
笔记·leetcode·链表
回到原点的码农8 小时前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
小O的算法实验室8 小时前
2026年SEVC,高密度仓库中结合任务分配的多AGV无冲突调度框架,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
abant28 小时前
leetcode 108 有序数组转平衡二叉树
算法·leetcode·职场和发展
jwt7939279378 小时前
SpringBoot实现异步调用的方法
java·spring boot·spring