赎金信--力扣383

赎金信

  • 题目
  • 思路一
  • 方法一:哈希表
  • 思路二
  • 方法二 数组

题目

在这里插入图片描述

思路一

我们使用哈希表map的思路,A能不能由B组成,说明B包含的元素个数要大于等于A。
所以我们先利用map的key和value分别对magazine中的出现的字符以及出现的次数存储起来。
然后我们去ransomNote中找对应的字符,每找到一次且value值大于零,就让value值减一。
如果没找到或者value值小于零,直接返回false。

方法一:哈希表

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {unordered_map<char, int> map;for (char c : magazine) {   map[c]++;}for (char d : ransomNote) {if (map.find(d) != map.end() && map.find(d)->second > 0) {map[d]--;} else {return false;}}return true;}
};

思路二

题目明确说了,只包含小写字母,所以可以直接用数组来完成,不需要利用map消耗过多的空间。
如果ransomNote的长度大于magazine,很明显ransomNote不能由magazine组成,直接返回false。
然后在magazine中对每个字符出现的次数累加,在ransomNote对所有的字符累减。
最后判断数组中是否存在小于零的值,如果有,则返回false,否则为true。

方法二 数组

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {int record[26] = {0};// 判断数组长度是否合理if (ransomNote.size() > magazine.size()) return false;for (int i = 0; i < magazine.size(); i++) {record[magazine[i] - 'a']++;}for (int i = 0; i < ransomNote.size(); i++) {record[ransomNote[i] - 'a']--;}for (int i = 0; i < 26; i++) {if (record[i] < 0) return false;}return true;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53613.shtml

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

相关文章

【射频通信电子线路基础第三讲】射频网络与阻抗匹配包括射频电路与网络、二端口射频网络参数,阻抗匹配解析法

一、射频电路与网络 1、物理等效电路与网络等效电路 &#xff08;1&#xff09;物理等效电路&#xff1a;是基于电流电压的等效电路&#xff0c;采用集总参数&#xff0c;反应电路内部的原理 &#xff08;2&#xff09;网络等效电路&#xff1a;是基于功率的等效电路&#x…

页面水印的实现以及防删除方案

水印相关 引言绘制一个水印输出背景图封装一点点细节图片加水印防止水印删除问题解决方案 引言 在企业里为了防止信息泄露和保护知识产权&#xff0c;通常会在页面和图片上添加水印 前端页面水印的添加一般有这几种方式&#xff1a;dom 元素循环、canvas 输出背景图、svg 实现…

企业财税自动化解决方案的成本效益分析与投资回报预测

随着企业规模的扩大和业务复杂度的增加&#xff0c;企业在财务管理方面也面临着诸多挑战&#xff0c;传统的财务管理方式逐渐无法满足企业经营需求&#xff0c;借助财税自动化解决方案来提高财务效率和准确性、降低人力成本&#xff0c;为企业带来长期的效益提升&#xff0c;已…

vue选择本地文件

需求&#xff1a;通过页面的按钮实现本地文件的选择&#xff08;以选择歌曲为例&#xff09;。 思路&#xff1a;利用原生input的type"file"来实现。 1.先自定义上传按钮 //HTML部分 <div class"p10 bs mb10" style"height: 40px"><…

通过战略性SEO整合提升B2B内容的可见性、权威性和投资回报率

精明的市场营销者知道&#xff0c;尽管B2B营销的重点是推动商业采购&#xff0c;但归根结底&#xff0c;商务买家依然是消费者。无论你是针对返校购物的父母的鞋子品牌&#xff0c;还是寻找新的内容制作合作伙伴以扩大内容计划的市场营销领导者&#xff0c;搜索引擎优化&#x…

航空航天混合动力(2)电动飞机发展中的电气连接挑战

航空航天混合动力(2)电动飞机发展中的电气连接挑战 1.概述2.更高的电压(千伏)和功率(兆瓦)2.缓解局部放电/电晕效应3.提高可靠性,更恶劣的环境,频繁的维护和检查,冲击和振动4.减重5.抗电弧跟踪和液压油阻力6.严格的可燃性,毒性和烟雾要求7.海拔和气压的影响8.工作温度范围…

远程存储 RDMA

什么是 RDMA RDMA&#xff08;Remote Direct Memory Access&#xff09;指的是远程直接内存访问&#xff0c;这是一种通过网络在两个应用程序之间搬运缓冲区里的数据的方法。 Remote&#xff1a;数据通过网络与远程机器间进行数据传输。 Direct&#xff1a;没有内核的参与&am…

Android app偶发Fragment中的Button点击事件无效

1.前言 在进行app开发的过程中,在某个Tv平台开发app的过程中,会使用到Tab切换主页面的功能, 所以就需要用到Fragment来切换页面,同时在Fragment中添加点击事件的时候,有时候无 响应,接下来就分析下具体原因 2.app偶发Fragment中的Button点击事件无效的核心功能分析 Fr…

【区块链 + 人才服务】CERX- 基于联盟链的研学资源交换网络 | FISCO BCOS应用案例

CERX 是定位于面向高校科学研究与教学的分布式研学资产交换网络&#xff0c;构建一个用于数据、算法模型、论文和课程的研学资源价值流转平台。该平台采用 FISCO BCOS 联盟链为核心区块链层。 CERX 基于“交叉学科”的人才培养生态&#xff0c;围绕“科研、课件、课程、证书”…

Linux基础3-基础工具1(什么是工具,yum,vim基础)

目录 一.什么是工具 二.yum 2.1 yum基础 2.2 yum拓展 2.3 rzsz 三.vim基础 四.下章内容 1. vim 插入模式&#xff0c;底行模式&#xff0c;命令模式下详解。vim基础配置 2. gcc/g 基础 一.什么是工具 工具的本质是也是指令。通过工具我们能快速的实现某些功能 二.yum 2.1…

JVM合集

序言: 1.什么是JVM? JVM就是将javac编译后的.class字节码文件翻译为操作系统能执行的机器指令翻译过程: 前端编译:生成.class文件就是前端编译后端编译:通过jvm解释(或即时编译或AOT)执行.class文件时跨平台的,jvm并不是跨平台的通过javap进行反编译2.java文件是怎么变…

任意论文一键变播客,谷歌正式发布Illuminate,它能重构研究者的学习方式吗?

先来听一段英文播客&#xff0c;内容是不是很熟悉&#xff1f; &#xff0c;时长04:27 是的&#xff0c;这俩人就是在聊那篇《Attention is All You Need》。在 4 分半的对话里&#xff0c;他们介绍了论文的核心内容&#xff0c;一问一答&#xff0c;听上去相当自然。 播客原址…

OAuth2.0和JWT

OAuth2.0 阮一峰的 理解OAuth 2.0 通俗的讲解了OAuth 2.0 的设计思路和运行流程 简单来说&#xff0c;OAuth&#xff08;开放授权&#xff09;是一种开放标准&#xff0c;用于允许用户在不暴露其凭据&#xff08;如用户名和密码&#xff09;的情况下&#xff0c;让第三方应用…

OPENAIGC开发者大赛企业组金奖 | 深度融合大语言模型的企业级智能文本审核系统

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给您…

SpringBoot大学生租房平台:技术实现与市场分析

第2章 开发环境与技术 大学生租房平台的编码实现需要搭建一定的环境和使用相应的技术&#xff0c;接下来的内容就是对大学生租房平台用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的&#xff0c;是经常变动的&#xff0c;没有办…

[最优化方法] 《最优化方法》个人问答式学习笔记 with LLM

《最优化方法》问答式学习笔记 with LLM 文章目录 《最优化方法》问答式学习笔记 with LLM写在前面每周提问的链接表格绪论 | 第一周 | [answer by 文心一言]Q1 请为我解释一下最优化方法研究的核心重点主要是哪些&#xff1f;一、问题定义与建模二、求解方法三、算法性能与优化…

【Sqlite】.NET Framework使用Sqlite的注意事项

注意&#xff1a;NuGet引入System.Data.SQLite.Core不要引入System.Data.SQLite 注意&#xff1a;局域网共享链接 正常链接Data Source\\BAT-OCV\SqliteDB\batOCV.db;Version3;PoolingTrue;Max Pool Size100; 局域网链接Data Source\\\BAT-OCV\SqliteDB\batOCV.db;Version3;P…

qt怎么格式化字符串?

在Qt中&#xff0c;格式化字符串可以通过多种方式实现&#xff0c;主要依赖于你的具体需求和上下文。下面列出了一些常见的方法&#xff1a; 1. 使用QString的arg()方法 QString类提供了arg()方法&#xff0c;这个方法允许你插入值到字符串中的占位符位置。占位符由%1、%2等表…

HTML5+CSS+JS制作中秋佳节页面

HTML5CSSJS制作中秋佳节页面 中秋节&#xff0c;是中国民间的传统节日。每年农历八月十五庆祝。 在中秋节这一天&#xff0c;人们会通过各种方式庆祝&#xff0c;其中最重要的活动之一就是赏月。家人团聚在一起&#xff0c;共同欣赏明亮的月亮。同时&#xff0c;吃月饼也是中秋…

Delphi 12.1安卓APP开发中获取硬件信息及手机号

Demo与代码已上传到CSDN下载。 这里简单说一下代码内容&#xff0c;完整代码请自行下载&#xff0c;不清楚的欢迎留言交流。 前言 演示Demo使用了我自己开发的一个控件&#xff0c;TLayoutPro 《Delphi D10.3 LayoutsPro 控件简介 -避免输入焦点被虚拟键盘遮挡》请查看并下载控…