当前位置: 首页 > news >正文

leetcode刷题记录(二十)——383. 赎金信

(一)问题描述

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=O83Ahttps://leetcode.cn/problems/ransom-note/description/

给你两个字符串:ransomNote 和 magazine ,判断 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
  • ransomNote 和 magazine 由小写英文字母组成

(二)关键词提取

  • magazine的字母在ransomNote中只能出现一次;
  • resomNote和magazine都由小写英文字母组成,小写字母的数量是有限的的。

(三)解决思路

       这道题和242.有效字母的异位词很像。这个问题实际是rasomNote的字母能否在magazine中都找到。找元素,哈希法。小写字母数量有限,并且映射关系很明确,就是使用ASCII:每个字母减去a就能得到连续的数组下标。

      所以解决问题的思路是:用数组统计magazine中每个字母出现的次数,再遍历ransomNote,每个字母出现一次就在数组对应的位置上减去一。最后的结果数组中如果有元素小于0,说明magazine中的字母“不够用”,那么ransomNote就无法由magazine中的字母构成。

 public boolean canConstruct(String ransomNote, String magazine) {//创建数组用来统计int[] records=new int[26];//统计magazine中的字符出现的次数for(int i=0;i<magazine.length();i++){records[magazine.charAt(i)-'a']+=1;}//遍历ransomNote,在数组对应位置减一for(int i=0;i<ransomNote.length();i++){records[ransomNote.charAt(i)-'a']-=1;if(records[ransomNote.charAt(i)-'a']<0){return false; //magazine中的元素不够用,返回false}}return true;}

http://www.mrgr.cn/news/65231.html

相关文章:

  • Nginx线程模型
  • Aurora 64b/66bIP核学习
  • Oracle OCP认证考试考点详解082系列11
  • 鸿蒙ArkTS中的布局容器组件(Column、Row、Flex、 Stack、Grid)
  • 从 vue 源码看问题 — 如何理解 vue 响应式?
  • 全志A133 android10 LVDS幅值调节
  • 管家婆财贸ERP BB090.销售单指定客户控制超期应收款
  • 2024年计算机视觉与图像处理国际学术会议 (CVIP 2024)
  • PYNQ 框架 - VDMA驱动 - 帧缓存
  • 算法竞赛(Python)-大事化小,小事化了(分治)
  • vscode php Launch built-in server and debug, PHP内置服务xdebug调试,自定义启动参数配置使用示例
  • LoRA(Low-Rank Adaptation)的工作机制 - 低秩矩阵来微调全连接层
  • JAVA学习-练习试用Java实现“判断奇偶数”
  • NFC碰一碰支付系统私有化部署的实用技巧!
  • 中国逐年最大NDVI数据集(250m)
  • 软件项目管理 之 6抓6放
  • 【JavaEE】【网络原理】初识网络
  • 重新构想定性数据分析:使用 NVivo 15 实现 AI、反思和备忘录
  • 彻底理解cookie、session、token
  • 近十年视觉任务中的对抗攻击研究综述
  • 解锁数字人直播:重塑行业生态,让真人出镜成过去式?
  • GEE 案例:利用多源遥感数据计算并预测指定森林区域的碳储量及RMSE
  • ROS(Robot Operating System)中,编写一个记录机器人速度并将其转换成轨迹
  • C++和OpenGL实现3D游戏编程【连载17】——着色器进阶(附源码)
  • 【时间之外】IT人求职和创业应知【26】
  • 《FPGA(现场可编程门阵列)的时序分析》