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 复制代码
    public boolean canConstruct(String ransomNote, String magazine) {
        // 如果ransomNote.length()大于magazine的,那么magazine绝对构不成ransomNote
        if (ransomNote.length() > magazine.length()) {
            return false;
        }
        // 定义数组来统计magazine中每一个字符的次数
        int[] arr = new int[26];
        for (char c : magazine.toCharArray()) {
            arr[c - 'a']++;
        }
        // 遍历ransomNote的每一个字符并对数组中的值相减
        for (int c : ransomNote.toCharArray()) {
            arr[c - 'a']--;
            //如果次数小于0,则表示不满足
            if (arr[c-'a'] < 0){
                return false;
            }
        }
        return true;
    }
相关推荐
小涛不学习2 分钟前
Java高频面试题(带答案版)
java·开发语言
big_rabbit05022 分钟前
JVM堆内存查看命令
java·linux·算法
m0_662577974 分钟前
C++中的RAII技术深入
开发语言·c++·算法
旖-旎4 分钟前
二分查找(点名)(8)
c++·算法·二分查找·力扣
承渊政道7 分钟前
【优选算法】(实战体验滑动窗口的奇妙之旅)
c语言·c++·笔记·学习·算法·leetcode·visual studio
lemonth9 分钟前
图形推理----
人工智能·算法·机器学习
学习要积极11 分钟前
Springboot图片验证码-EasyCaptcha
java·spring boot·后端
2401_8914821720 分钟前
C++代码复杂性分析
开发语言·c++·算法
keep intensify21 分钟前
单词搜索-
算法·深度优先
zx_zx_12321 分钟前
定长滑动窗口和不定长滑动窗口
数据结构·算法