哈希表(计数)— 赎金信
文章目录一、[题目](https://leetcode.cn/problems/ransom-note/description/?envTypestudy-plan-v2envIdtop-interview-150)二、My thinking三、哈希表3.1 思路3.2 算法步骤3.3 代码实现3.4 时间和空间复杂度四、总结一、题目给你两个字符串ransomNote 和 magazine 判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以返回 true 否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。为什么题目叫赎金信绑匪要写一封勒索信ransom note为了不让警方通过笔迹追踪到自己他决定从杂志magazine上剪下一个个字母拼成这封信。示例1 输入ransomNotea,magazineb输出false 示例2 输入ransomNoteaa,magazineab输出false 示例3 输入ransomNoteaa,magazineaab输出true二、My thinkingreturn None三、哈希表3.1 思路检查 ransomNote 中每个字符的出现次数是否都 ≤ magazine 中的出现次数。可以用哈希表统计每个字符串中每个字符的数量。3.2 算法步骤初始用一个哈希表表示magazine里每个字符的数量得到一个字典遍历遍历ransomNote中的字符拿从ransomNote遍历得到的字符去字典里哈希判断如果哈希不到ransomNote遍历的这个字符不在magazine里返回False要是能哈希到说明ransomNote遍历的这个字符在magazine里将字典里这个字符的数值减1因为只能使用一次3.3 代码实现fromcollectionsimportCounterclassSolution:defcanConstruct(self,ransomNote:str,magazine:str)-bool:countCounter(magazine)forchinransomNote:ifcount[ch]0:returnFalsecount[ch]-1returnTrue更简洁的写法fromcollectionsimportCounterclassSolution:defcanConstruct(self,ransomNote:str,magazine:str)-bool:# Counter 支持加法、减法、交集和并集等算术运算。returnnot(Counter(ransomNote)-Counter(magazine))3.4 时间和空间复杂度时间复杂度使用Counter对magazine遍历计数后面的for循环又遍历了一次时间复杂度与两个字符串的长度有关时间复杂度为O(n)空间复杂度用count存储magazine字符串的计数字符集固定为26与字符串规模无关所以空间复杂度为O(1)四、总结Counter是Python内置模块collections中的一个计数器工具可以方便快捷地计数。Counter 支持加法、减法、交集和并集等算术运算。看到「计数」「次数」「够不够」就想到哈希表。

相关新闻

DeepSeek大模型本地部署与性能优化实战指南

DeepSeek大模型本地部署与性能优化实战指南

简介:本资源是一份面向开发者与AI技术爱好者的DeepSeek大模型本地化实践指南,聚焦解决大模型部署门槛高、硬件适配难、运行成本高等实际问题。内容覆盖从国产大模型选型优势分析、多档位硬件配置推荐(含RTX 3060至4090的显存/内存/性价比方案…

2026/10/11 9:56:54 阅读更多 →
北京24小时自助健身房系统开发实战指南与案例解析

北京24小时自助健身房系统开发实战指南与案例解析

北京 24 小时自助健身房系统开发实战指南 随着城市生活节奏的加快,健身需求日益增长,24 小时自助健身房成为一种高效、便捷的解决方案。在北京这样的大城市,用户对健身时间的灵活性和设备的智能化提出了更高要求。因此,开发一套稳…

2026/10/11 9:56:54 阅读更多 →
BetterCapture双音轨录屏教程:系统声音+麦克风分轨录制,后期剪辑自由调音量

BetterCapture双音轨录屏教程:系统声音+麦克风分轨录制,后期剪辑自由调音量

【免费下载链接】BetterCapture The macOS screen recorder for the rest of us - always free and open source with a native look and feel 📺 项目地址: https://gitcode.com/gh_mirrors/be/BetterCapture 点击查看 免费下载 如果你录屏时经常遇到&…

2026/10/11 9:56:53 阅读更多 →

最新新闻

【AI 和未来】工作(1)

【AI 和未来】工作(1)

原文链接:https://www.ibm.com/cn-zh/think/insights/ai-and-the-future-of-work 概述 人工智能融入职场是重大技术变革,开启人机协作时代。叠加全球技能短缺、后疫情远程办公、企业数据爆炸等背景,AI成为企业解决业务难题、打造个性化员工体…

2026/10/11 10:55:27 阅读更多 →
布谷鸟2012局域网聊天工具:原理、部署与避坑指南

布谷鸟2012局域网聊天工具:原理、部署与避坑指南

简介:布谷鸟2012是一款面向企业内部局域网的即时通讯与协作软件,主要解决团队日常沟通、文件传递和远程协助三大需求。软件内置文本聊天、群组讨论、文件传送、离线文件、远程协助、录音留言、消息签收、语音视频通话、共享文档、公告发布、MSN互通、视频…

2026/10/11 10:55:27 阅读更多 →
服务器板载G200e显卡驱动安装与排查:Linux与Windows实战指南

服务器板载G200e显卡驱动安装与排查:Linux与Windows实战指南

简介:Matrox G200e (ServerEngines) 驱动是面向惠普HP ML110 G6服务器板载显卡的驱动资源。G200e作为专为服务器设计的低功耗图形处理单元,承担服务器基本显示输出与远程管理界面呈现功能。该资源有效解决Windows系统下显卡无法识别、分辨率受限等问题&a…

2026/10/11 10:55:27 阅读更多 →
Oracle 10g 10.2.0.4 Windows Server 2008 R2 离线静默安装包

Oracle 10g 10.2.0.4 Windows Server 2008 R2 离线静默安装包

简介:本资源是Oracle 10g Release 2(10.2.0.4)面向Windows Vista与Windows Server 2008 x64平台的生产级数据库部署包,专为DBA及企业级数据库运维人员设计,解决64位Windows环境下Oracle数据库快速部署、配置复用与灾备…

2026/10/11 10:55:27 阅读更多 →
反爬虫大师:可复用网络爬取API服务的设计与实战拆解

反爬虫大师:可复用网络爬取API服务的设计与实战拆解

做爬虫这行十来年,我最大的体会是:反爬和爬取永远在互相拉扯。早年写个requests带上UA就能把数据拿回来,现在呢,网站动不动就上动态渲染、浏览器指纹、行为分析、滑块校验,甚至接口参数都是加密的。你真想稳定拿数据&a…

2026/10/11 10:55:27 阅读更多 →
实测不掺水!音频快剪神器深度测评,普通人剪辑效率提升80%

实测不掺水!音频快剪神器深度测评,普通人剪辑效率提升80%

做自媒体、剪短视频、做配音和播客的小伙伴,大概率都被音频剪辑折磨过:电脑专业软件操作繁琐、学习成本高,手机免费工具功能残缺,要么剪完音质翻车,要么处理速度巨慢,稍微复杂一点的人声分离、降噪就完全ho…

2026/10/11 10:54:26 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →