【LeetCode-简单题】383. 赎金信

文章目录

题目

方法一:数组

  1. 先将magazine中的字符转换为26大小的数组中字符的数量
  2. 然后再遍历ransomNote中的字符,每遍历一个就让字符数量- 1,若字符数量<0 了 ,说明magazine的字符串不完全包含ransomNote
java 复制代码
class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        if(ransomNote.length() > magazine.length()) return false;
          int[] mag = new int[26];

          for(char ch : magazine.toCharArray())
          mag[ch-'a']++;

          for(char sh :ransomNote.toCharArray()){
          mag[sh-'a']--;
          if( mag[sh-'a'] < 0 ) return false;
          }
          return true;
    }
}

方法二:哈希表

同理方法一

java 复制代码
class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        if(ransomNote.length() > magazine.length()) return false;
          Map<Character,Integer> map = new HashMap<>();
          for(char s : magazine.toCharArray()){
              if(!map.containsKey(s)) map.put(s,1);
              else map.put(s,map.get(s)+1);
          }
          for(char s1 : ransomNote.toCharArray()){
              if( !map.containsKey(s1) ) return false;
               map.put(s1,map.get(s1)-1);
              if(map.get(s1) < 0) return false;
          }
          return true;
    }
}
相关推荐
冠离sir10 分钟前
代码随想录训练营第三十天 | 452. 用最少数量的箭引爆气球 435. 无重叠区间 763.划分字母区间
算法
数据与人工智能律师13 分钟前
数据淘金时代:公开爬取如何避开法律雷区?
网络·人工智能·算法·云计算·区块链
天朝八阿哥14 分钟前
Debian开机自动挂载ntfs分区
linux·后端·debian
星梦客17 分钟前
VMware 虚拟机开机自启动配置指南
linux·运维·服务器
闻缺陷则喜何志丹27 分钟前
【强连通分量 拓扑序】P9431 [NAPC-#1] Stage3 - Jump Refreshers|普及+
c++·算法·图论·拓扑序·洛谷·强连通分量
_小猪沉塘28 分钟前
【Create my OS】从零编写一个操作系统
linux·操作系统·unix
早起鸟儿2 小时前
docker-自动启动java 包
java·linux·运维·docker
thinkMoreAndDoMore2 小时前
linux驱动开发(7)-互斥与同步
linux·运维·驱动开发
PursuitK2 小时前
Linux 基本命令
linux·服务器·linux常用命令
liulilittle2 小时前
通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法。
linux·服务器·c++·算法·安全·加密·openssl