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.mzph.cn/news/759650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

升级 HarmonyOS 4 版本,腕上智慧更进一步

HUAWEI WATCH GT 3 系列升级 HarmonyOS 4 新版本后&#xff0c;手表体验更进一步&#xff0c;快来看看有哪些变化吧~

如何进行端口映射端口转发?

在互联网时代&#xff0c;网络安全成为一项重要的任务。端口映射端口转发是一种常用的网络安全技术&#xff0c;它可以实现远程访问内部网络资源的需求。本文将介绍端口映射端口转发的基本原理和应用场景&#xff0c;以及一种名为"天联"的解决方案。 基本原理 端口映…

种植新革命:科技赋能绿色未来

《种植新革命&#xff1a;科技赋能绿色未来》 一、种植技术的颠覆式创新 随着科技的飞速发展&#xff0c;种植技术也在经历一场颠覆式的创新。传统的种植方式&#xff0c;虽然历史悠久&#xff0c;经验丰富&#xff0c;但在面对现代化、大规模、高效的需求时&#xff0c;逐渐…

LeetCode每日一题——最后一个单词的长度

最后一个单词的长度OJ链接&#xff1a;58. 最后一个单词的长度 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路 &#xff1a; 统计字符串中最后一个单词的长度&#xff0c;那么我们可以定一一个指针&#xff0c;从后向前开始统计&#xff0c;当指针指向的元素…

Nest.js Sequelize ORM到数据库(MySQL PostgreSQL)示例

Nest.js Sequelize ORM到数据库(MySQL & PostgreSQL)示例 目录 Nest.js Sequelize ORM到数据库(MySQL & PostgreSQL)示例您将学到什么先决条件步骤1:创建您的第一个NestJS Sequelize ORM应用步骤2:使用NestJS与MySQL或PostgreSQL构建Sequelize模型步骤3:使用Nes…

【LabVIEW FPGA入门】局部变量和全局变量

局部变量 无法访问某前面板对象或需要在程序框图节点之间传递数据时&#xff0c;可创建前面板对象的局部变量。创建局部变量后&#xff0c;局部变量仅仅出现在程序框图上&#xff0c;而不在前面板上。 局部变量可对前面板上的输入控件或显示件进行数据读写。写入局部变量相当于…

汇编语言中的start有什么用

一 START END 开头有个START 结尾有个END 1.汇编语言中的start有什么用&#xff1f; start就是一个标号,标志程序的入口而已,程序加载到内存之后CS:IP会指向这个标号,从START指向的指令开始运行 这个标号不一定是START,你也可以用MAIN,但在程序的最后要用END MAIN来提示程序…

流畅的 Python 第二版(GPT 重译)(十三)

第二十四章&#xff1a;类元编程 每个人都知道调试比一开始编写程序要困难两倍。所以如果你在编写时尽可能聪明&#xff0c;那么你将如何调试呢&#xff1f; Brian W. Kernighan 和 P. J. Plauger&#xff0c;《编程风格的要素》 类元编程是在运行时创建或自定义类的艺术。在 P…

Spring Data访问Elasticsearch----查询方法

Spring Data访问Elasticsearch----查询方法 一、查询lookup策略1.1 声明的查询 二、创建查询三、方法返回类型四、使用Query注解 一、查询lookup策略 Elasticsearch模块支持所有基本的查询构建功能&#xff0c;如字符串查询、native搜索查询、基于条件的查询和从方法名派生的查…

vue3+vite+Electron构建跨平台应用

1.搭建第一个 electron-vite 项目 electron-vite 是一个新型构建工具,旨在为 Electron 提供更快、更精简的开发体验。它主要由五部分组成: 一套构建指令,它使用 Vite 打包你的代码,并且它能够处理 Electron 的独特环境,包括 Node.js 和浏览器环境。 集中配置主进程、渲染…

局域网内怎么控制另一台电脑

局域网内怎么控制另一台电脑 在局域网内控制另一台电脑是一个相对高级的操作&#xff0c;通常用于远程管理、技术支持或资源共享等场景。要实现这一功能&#xff0c;需要确保两台电脑都连接到同一个局域网&#xff0c;并且已进行适当的配置。以下是几种常见的方法&#xff1a;…

【蓝桥杯选拔赛真题42】C++切蛋糕 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解析

目录 C切蛋糕 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C切蛋糕 第十四届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 1、编程实现 有一块矩形蛋糕&#xff0c;小明从蛋糕…

汽车信息安全--密钥管理系统初探(2)

目录 1.HSM中的密钥管理 1.1 密钥生成 1.2 密钥分发 1.3 密钥使用 1.4 密钥存储 <

GCN-Align论文翻译

GCN-Align翻译 Cross-lingual Knowledge Graph Alignment via Graph Convolutional Networks 基于图卷积网络的跨语言知识图谱对齐 Abstract 多语言知识图&#xff08;KGs&#xff09;&#xff0c;如DBpedia和YAGO&#xff0c;包含几种不同语言的实体结构化知识&#xff0c…

linux arm64 opencv 使用MJPG获取摄像头图片

先上代码 #include <opencv2/opencv.hpp>cv::VideoCapture capture(9, cv::CAP_V4L2);if (!capture.isOpened()){qDebug() << "打开摄像头失败";return -1;}if(1){// 设置为 MJPG (Motion-JPEG, compressed)qDebug() << "MJPEG:" <…

墨菲安全在软件供应链安全领域阶段性总结及思考

向外看&#xff1a;墨菲安全在软件供应链安全领域的一些洞察、思考、行动 洞察 现状&挑战&#xff1a; 过去开发安全体系是无法解决软件供应链安全问题的&#xff1b;一些过去专注开发安全领域的厂商正在错误的引导行业用开发安全思维解决软件供应链安全问题&#xff0c;治…

树形递归模板

详情参考CSDN链接: https://www.cnblogs.com/lidar/p/12972792.html public class Menu {// 菜单idprivate String id;// 菜单名称private String name;// 父菜单idprivate String parentId;// 菜单urlprivate String url;// 菜单图标private String icon;// 菜单顺序private …

laravel10使用firebase/php-jwt 6.0

话不多说&#xff0c;直接上示例 <?php /*** Created by PhpStorm* User: xxx 根据自己情况设置* Date: 2024/3/20* Time: 15:53* Brief:* docs:*/namespace App\lib\jwt;use App\Exceptions\BaseException; use Exception; use Firebase\JWT\JWT; use Firebase\JWT\Key;c…

[linux] Key is stored in legacy trusted.gpg keyring

修复 Ubuntu 中的 “Key is stored in legacy trusted.gpg keyring” 问题_key is stored in legacy trusted.gpg keyring (/etc/-CSDN博客 复制到trusted.gpd.d 目录中(快速但不优雅的方法) 如果你觉得手动做上面的事情不舒服&#xff0c;那么&#xff0c;你可以忽略这个警告…

SpringCloud中的@EnableDiscoceryClient和@EnableFeignClients注解的作用解析、RPC远程过程调用

目录 EnableDiscoveryClient 服务发现的核心概念 服务注册中心 EnableDiscoveryClient注解的作用 服务心跳健康检查 使用示例 EnableFeignClients Feign简介 EnableFeignClients注解的作用 RPC&#xff08;Remote Procedure Call&#xff09; 参考链接 Spring Cloud…