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;
    }
相关推荐
淡海水1 分钟前
10-05-高级-模式匹配-CSharp如何改变与数据结构的交互方式
数据结构·算法·c#·模式匹配
geovindu8 分钟前
java: Task Scheduler
java·开发语言·后端
神奇小梵12 分钟前
java的特殊语法点,与常规语言相异的点
java·开发语言
果壳science21 分钟前
张祥前统一场论研讨会在香港理工大学举办
人工智能·算法
无巧不成书021827 分钟前
Tomcat 下载后使用全指南:解压、环境配置、启动验证与常见问题排查
java·tomcat
Wang's Blog31 分钟前
Java框架快速入门: Spring Security+OAuth2之多因子认证缓存服务
java·spring·缓存
蓝速科技35 分钟前
蓝速科技 F100 双屏翻译机:中小企业跨国会议提效方案
大数据·网络·数据结构·人工智能·科技·运维开发
桐盛科技38 分钟前
能碳数据清洗用MAD算法,窗口大小和阈值怎么调?
物联网·算法·边缘计算
Omics Pro41 分钟前
澳科大:自进化AI虚拟细胞
数据库·人工智能·算法·机器学习·自然语言处理
Doubbbbbbble云41 分钟前
从算法工程化角度看空间换时间策略的权衡4
算法