【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;
    }
}
相关推荐
大大da怪i1 分钟前
WSL-Ubuntu忘记root密码,修改root密码
linux·ubuntu
老黄编程2 分钟前
09-ubuntu20.04 执行 apt update时报错,是因为官网已停止维护不再更新的缘故吗?
linux·运维·服务器·ubuntu·数字证书
Supernova_Jun2 分钟前
ffmpeg图片转视频
linux·运维·服务器
海琴烟Sunshine2 分钟前
leetcode 338. 比特位计数 python
python·算法·leetcode
水月wwww5 分钟前
ubuntu网络连接出错解决办法
linux·运维·计算机网络·ubuntu·操作系统·ubuntu网络连接
0wioiw06 分钟前
Ubuntu(①shell脚本)
linux·运维·ubuntu
TYUT_xiaoming6 分钟前
ubuntu22.04 GPU环境安装mindspore
linux·人工智能·深度学习
illuspas7 分钟前
AMD MI50 在Ubuntu 24.04下安装驱动和ROCm
linux·运维·ubuntu
HIT_Weston8 分钟前
19、【Ubuntu】【远程开发】技术方案分析:远程桌面
linux·运维·ubuntu
闻缺陷则喜何志丹44 分钟前
【贪心 字典序 回文 最长公共前缀】LeetCode3734. 大于目标字符串的最小字典序回文排列|分数未知
c++·算法·力扣·贪心·字典序·回文·最长公共前缀