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

383.赎金信

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

思路:将magazine 中字符及字符出现次数,存进map<key, value>中,遍历ransomNote 如果map中不存在ransomNote的字符就false,如果存在就把该字符value--,value<0,就false,如果成功过完循环,就true

时间复杂度:O(m + n)

空间复杂度:O(m)

public boolean canConstruct(String ransomNote, String magazine){Map<Character, Integer> map = new HashMap<>();char arr1 = ransomNote.toCharArray();char arr2 = magazine.toCharArray();for(char ch : arr1) map.put(ch, getOrDefault(ch, 0) + 1);for(char ch : arr2) {if(!map.containsKey(ch) || map.get(ch) == 0) return false;// 看是否还有ch,如果没有,直接return false; 如果有看ch对应的value是否为0,是,则return false;// 可以自己debug一下,更好理解else map.put(ch, map.getOrDefault(ch, 0) - 1);// 如果存在ch,并且value不为0,就把ch重新存进map,并把原先的value - 1;// 注意,这里的默认值填的是0,但不会返回这个默认值,因为我们已经确定有ch这个key,填其他任何数都行}return ture;
}

http://www.lryc.cn/news/324198.html

相关文章:

  • Python 3 教程(8)
  • Mysql数据库深入理解
  • android 音频焦点,音频策略梳理
  • go语言-基础元素与结构的使用
  • 【leetcode热题】 二叉树的右视图
  • 康奋威科技邀您到场参观2024长三角快递物流展
  • linux centos 安装jenkins,并构建spring boot项目
  • 是德科技keysight DSOX3024T示波器
  • C#获取HTML源码
  • element-ui checkbox 组件源码分享
  • JavaEE--小Demo--数据库建立
  • 读算法的陷阱:超级平台、算法垄断与场景欺骗笔记19_前方的路
  • MySQL双一参数性能测试
  • CodeSys创建自定义的html5控件
  • Xcode15报错: SDK does not contain ‘libarclite‘
  • 矩阵快速幂
  • 数据之谜:解读Facebook的用户行为
  • 学习 考证 帆软 FCP-FineBI V6.0 考试经验
  • 《过滤器模式(极简c++)》
  • 【C++】如何用一个哈希表同时封装出unordered_set与unordered_map
  • Day45:WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件
  • web安全之:三种常见的Web安全威胁
  • C#,图论与图算法,用于检查给定图是否为欧拉图(Eulerian Graph)的算法与源程序
  • Dubbo框架的介绍
  • 手机实时监控电脑屏幕(手机可以看到电脑在干什么吗)
  • 合成孔径雷达干涉测量InSAR数据处理、地形三维重建、形变信息提取、监测
  • 云原生(五)、Docker-Swarm集群
  • arm核的DMPIS是如何计算的
  • Axure RP 9 for Mac中文激活版:原型设计工具
  • Hive 数据迁移与备份