LeetCode 383. 赎金信

ops/2025/1/19 12:07:03/

在本篇博客中,我们将探讨LeetCode上的一个经典问题:383. 赎金信。这个问题考察了我们对字符串处理和字符计数的理解和应用。

问题描述

解题思路

这个问题可以通过字符计数的方法来解决。我们首先统计 magazine 中每个字符出现的次数,然后检查 ransomNote 中的每个字符是否都能在 magazine 中找到足够的数量。如果 ransomNote 中的任何一个字符在 magazine 中的数量不足,我们就返回 false。如果所有字符都能在 magazine 中找到足够的数量,我们就返回 true

代码实现

以下是使用C++实现的代码:

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {// 用于记录字符出现次数的数组int count[26] = {0};// 统计magazine中每个字符出现的次数for (char c : magazine) {count[c - 'a']++;}// 检查ransomNote中的字符是否能由magazine中的字符组成for (char c : ransomNote) {if (count[c - 'a'] == 0) {return false;}count[c - 'a']--;}// 如果遍历完ransomNote都没有返回false,说明可以组成,返回truereturn true;}
};

算法分析

  • 时间复杂度:O(n + m),其中 n 是 magazine 的长度,m 是 ransomNote 的长度。我们需要遍历两个字符串来统计字符数和检查字符。

  • 空间复杂度:O(1),我们只使用了一个固定大小的数组来存储字符计数,与输入规模无关。

结论

这个问题是一个典型的字符计数问题,通过使用一个数组来记录字符的出现次数,我们可以高效地解决这个问题。这种方法不仅代码简洁,而且运行效率高,是解决类似问题的一个好方法。


http://www.ppmy.cn/ops/151376.html

相关文章

【Linux】常见指令(一)

Linux常见指令 01.whoami02.pwd03.ls04.mkdir05.cd 本文LInux环境为,使用XShell远程登陆到Linux。 具体如何环境搭建,大家可以查看其他博客。 01.whoami whoami 指令用来查看当前账户是谁。 如上图所示,使用whoami指令,查看到现在…

Zookeeper 核心知识深度解析:从选主到部署

1.请简述Zookeeper的选主流程 Zookeeper 是一个用于维护配置信息、命名、提供分布式同步和组服务的工具。它在分布式系统中提供了强一致性,这得益于它的内部实现机制,其中包括选主流程(Leader Election)。以下是 Zookeeper 的选主…

【C#】将信息输出到 Visual Studio 的输出窗口的几个方式

在 WinForms 项目中,可以通过使用 System.Diagnostics.Debug 或 System.Diagnostics.Trace 类将信息输出到 Visual Studio 的输出窗口。这两者之间的主要区别在于,Debug 仅在调试模式下有效,而 Trace 则在调试模式和发布模式下都有效。 方法…

CUDA C 编程入门学习记录

这是本人21年读书时学习CUDA基础知识保留的一些笔记,学习时的内容出处和图片来源不记得了,仅作为个人记录! CUDA编程 host:主机端CPU device:设备端GPU kernels:核函数 global:定义一个kernel函数 入口函数,CPU调用&…

弱口令漏洞+文件上传漏洞

一、弱口令漏洞 (一)基本原理 1.弱口令:容易被别人猜到或破解的命令 2.常见弱口令: 3.漏洞利用:bp爆破 (二)工具使用 bp intruder的四个模块: 1.sniper:只攻击一个…

商城系统中的常见 BUG

以下是商城系统中一些常见的 BUG: 功能与操作类 支付问题:如无法成功完成支付,支付过程中出现延迟、错误或订单重复支付等,还可能因网络问题导致支付失败或数据不一致。 登录 / 注册问题:用户在注册或登录时可能遇到…

Linux《Linux简介与环境的搭建》

在学习了C或者是C语言的基础知识之后就可以开始Linux的学习了,现在Linux无论是在服务器领域还是在桌面领域都被广泛的使用,所以Linxu也是我们学习编程的重要环节,在此接下来我们将会花大量的时间在Linxu的学习上。在学习Linux初期你可以会像初…

物联网通信协议对比-带表格

背景 现在物联网话题是热门,各行各业都在应用。常见的物联网协议,如:MQTT、CoAP、XMPP、SOAP、REST等 物联网协议整理 MQTT(Message Queue Telemetry Transport)消息队列遥测转输协议,工作原理类似于一个…