【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;
    }
}
相关推荐
地平线开发者15 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮15 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者16 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考16 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx19 小时前
CART决策树基本原理
算法·机器学习
Wect19 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱20 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux