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
    }
}
相关推荐
二哈喇子!1 小时前
若依【(前后端分离版)SpringBoot+Vue3】
java·spring boot·后端
paopaokaka_luck1 小时前
婚纱摄影管理系统(发送邮箱、腾讯地图API、物流API、webSocket实时聊天、协同过滤算法、Echarts图形化分析)
vue.js·spring boot·后端·websocket·算法·echarts
愚戏师2 小时前
机器学习(重学版)基础篇(算法与模型一)
人工智能·算法·机器学习
Monkey-旭4 小时前
Android Handler 完全指南
android·java·handler
秃狼4 小时前
Execel文档批量替换标签实现方案
java
神经兮兮的小饼4 小时前
字符串是数据结构还是数据类型?
数据结构·字符串
Brookty4 小时前
Java线程安全与中断机制详解
java·开发语言·后端·学习·java-ee
OEC小胖胖4 小时前
渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
前端·算法·ui·状态模式·web
找不到、了4 小时前
Java排序算法之<归并排序>
算法·排序算法
香蕉可乐荷包蛋4 小时前
排序算法 (Sorting Algorithms)-Python示例
python·算法·排序算法