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

241119.LeetCode——383.赎金信

题目描述

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。

示例 1:
输入:ransomNote = "a", magazine = "b"
输出:false
示例 2:
输入:ransomNote = "aa", magazine = "ab"
输出:false
示例 3:
输入:ransomNote = "aa", magazine = "aab"
输出:true

提示:

● 1 <= ransomNote.length, magazine.length <= 105
● ransomNote 和 magazine 由小写英文字母组成

思路

题目要求是作一个简化版的字符串匹配,这样的题思路很简单,之前刷 Cpp 也遇到过,总的来说是用哈希的思想来完成,但是现在用的是 Python ,有一些语法糖可以利用。

  • 我首先想到的数据结构是 字典 ,可以存储 字母 和 出现次数 的对应关系。但很快被我自己否定了,因为想起来可以利用数组的索引和数组本身存储。
  • 视角切换到数组,Python 本身其实没有数组,而是叫列表,这样就多了很多可以利用的方法(虽然我都不是很熟悉),比如 append() 之类的,这里可以考虑构建数组,初始化采用了array = [0] * 26,这个是 AI 写的,也是震惊到我…我一开始的思路是用 for
  • 后面的思路也就是哈希的操作了,存值取值,值得注意的是 Python 有一个字符转 ASCII 的函数 ord() 这样就可以方便地进行索引索取了,结果当然是通过

代码实现

Python3

class Solution:def canConstruct(self, ransomNote: str, magazine: str) -> bool:array = [0] * 26for i in magazine:array[ord(i) - ord("a")] += 1for i in ransomNote:if array[ord(i) - ord("a")] == 0:return Falsearray[ord(i) - ord("a")] -= 1return True

时间空间效率

总结

InternStudio 上海书生大模型训练营任务一

好久没写过 Python 了…大一到现在也学了很多门语言,基本上也就是做过1~2个demo…其余什么语法的,都得用到了才去查,查了很长时间后又会忘却…这确实是一个问题,编程语言的学习确实在精而不在广,更合适的应该是通过一门语言,带领入门一个岗位(前后端、架构运维等等)…但是现在要用到,之前学过至少不用从头开始,看到 Python 代码心里也没有那么慌张…

相关文章:

241119.LeetCode——383.赎金信

题目描述 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&#xff1a; 输…...

基于SSM的农家乐管理系统+论文示例参考

1.项目介绍 功能模块&#xff1a;管理员&#xff08;农家乐管理、美食信息管理、住宿信息管理、活动信息、用户管理、活动报名、论坛等&#xff09;&#xff0c;普通用户&#xff08;注册登录、活动报名、客房预订、用户评价、收藏管理、模拟支付等&#xff09;技术选型&#…...

用 Python 从零开始创建神经网络(九):反向传播(Backpropagation)(还在更新中。。。)

反向传播&#xff08;Backpropagation&#xff09; 引言1. 分类交叉熵损失导数&#xff08;Categorical Cross-Entropy loss derivative&#xff09;2. 分类交叉熵损失衍生代码实现3. Softmax激活导数&#xff08;Softmax activation derivative&#xff09;4. Softmax激活函数…...

Flink是如何实现 End-To-End Exactly-once的?

flink 如何实现端到端的 Exactly-once? 端到端包含 Source, Transformation,Sink 三部分的Exactly-once Source&#xff1a;支持数据的replay&#xff0c;如Kafka的offset。Transformation&#xff1a;借助于checkpointSink&#xff1a;Checkpoint 两阶段事务提交 两阶段提…...

【vulhub】nginx解析漏洞(nginx_parsing_vulnerability)

1. nginx解析漏洞原理 fastcgi 在处理’.php’文件时发现文件并不存在,这时 php.ini 配置文件中cgi.fix_pathinfo1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径 (1)由于 nginx.conf的配置导致 nginx把以’.php”结尾的文件交给 fastcgi 处理,为此可以构造…...

网络协议之邮件协议(SMTP、POP3与IMAP)

一、引言 在数字化时代&#xff0c;电子邮件已成为人们日常沟通和信息交流的重要工具。电子邮件系统的稳定运行离不开一系列网络协议的支撑&#xff0c;其中SMTP、POP3和IMAP是最为关键的三个协议。它们分别负责邮件的发送、接收和管理&#xff0c;共同构建了一个高效、稳定的…...

python学习笔记(3)运算符

Python 语言支持的运算符: Python 语言支持以下类型的运算符: 算术运算符 比较&#xff08;关系&#xff09;运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 接下来让我们一个个来学习Python的运算符。 Python算术运算符 运算符描述实例加 - 两…...

_FYAW智能显示控制仪表的简单使用_串口通信

一、简介 该仪表可以实时显示位移传感器的测量值&#xff0c;并可设定阈值等。先谈谈简单的使用方法&#xff0c;通过说明书&#xff0c;我们可以知道长按SET键可以进入参数选择状态&#xff0c;按“↑”“↓”可以选择该组参数的上一个或者下一个参数。 从参数一览中可以看到有…...

激光雷达定位初始化的另外一个方案 通过键盘按键移动当前位姿 (附python代码)

通常使用的是通过在 rviz 中点选指定初始化位置和方向来完成点云的初始化匹配。 但是这种粗略的初始化方法有时候可能不成功,因此需要使用准确的初始化方法,以更好的初始值进行无损检测配准。 为了提供更好的匹配初始值,我使用 Python 脚本获取键盘输入,并不断调整这个匹配…...

从0-1逐步搭建一个前端脚手架工具并发布到npm

前言 vue-cli 和 create-react-app 等 cli 脚手架工具用于快速搭建应用&#xff0c;无需手动配置复杂的构建环境。本文介绍如何使用 rollup 搭建一个脚手架工具。 脚手架工具的工作流程简言为&#xff1a;提供远端仓库各种模版 > 用户通过命令选择模版 > 拉取仓库代码 …...

河道水位流量一体化自动监测系统:航运安全的护航使者

在广袤的水域世界中&#xff0c;航运安全始终是至关重要的课题。而河道水位流量一体化自动监测系统的出现&#xff0c;如同一位强大的护航使者&#xff0c;为航运事业的稳定发展提供了坚实的保障。 水位传感器&#xff1a;负责实时监测河道的水位变化。这些传感器通常采用先进的…...

维护在线重做日志

学习目标 解释在线重做日志文件的目的概述在线重做日志文件的结构控制日志开关和检查点多路复用和维护在线重做日志文件使用OMF管理在线重做日志文件获取在线重做日志文件信息 在线重做日志文件提供了在数据库发生故障时重做事务的方法。 每个事务都同步写入重做日志缓冲区&a…...

ASCB1系列APP操控末端回路智能微断 物联网断路器 远程控制开关 学校、工厂、农场、商业大楼等可用

安科瑞戴婷 Acrel-Fanny ASCB1系列智能微型断路器是安科瑞电气股份有限公司全新推出的智慧用电产品&#xff0c;产品由智能微型断路器与智能网关两部分组成&#xff0c;可用于对用电线路的关键电气因素&#xff0c;如电压、电流、功率、温度、漏电、能耗等进行实时监测&#x…...

Python入门(10)--面向对象进阶

Python面向对象进阶 &#x1f680; 1. 继承与多态 &#x1f504; 1.1 继承基础 class Animal:def __init__(self, name, age):self.name nameself.age agedef speak(self):passdef describe(self):return f"{self.name} is {self.age} years old"class Dog(Anim…...

Makefile 之 自动化变量

作用范围只在这条规则以及连带规则中&#xff0c;所以其值也只在作用范围内有效。而不会影响规则链以外的全局变量的值。 "$" 表示目标的集合&#xff0c;就像一个数组&#xff0c;"$"依次取出目标&#xff0c;并执于命令。 "$<"和"$&qu…...

鸿蒙开发:ForEach中为什么键值生成函数很重要

前言 在列表组件使用的时候&#xff0c;如List、Grid、WaterFlow等&#xff0c;循环渲染时都会使用到ForEach或者LazyForEach&#xff0c;当然了&#xff0c;也有单独使用的场景&#xff0c;如下&#xff0c;一个很简单的列表组件使用&#xff0c;这种使用方式&#xff0c;在官…...

沃丰科技智能外呼机器人:超越人工,重塑外呼体验

随着科技的不断发展&#xff0c;人工智能已经逐渐渗透到各行各业&#xff0c;其中智能外呼机器人的出现&#xff0c;更是给企业带来了全新的客户体验。与传统的人工外呼相比&#xff0c;智能外呼机器人具有更高的效率、更低的成本以及更好的用户体验等优势。 优势一&#xff1…...

百度飞浆:paddle 线性回归模型

学习引用 参考视频&#xff1a; https://www.bilibili.com/video/BV1oRtkeVEVx?spm_id_from333.788.player.switch&vd_sourcec7739de98d044e74cdc74d6e772bed5f&p2 这段代码使用PaddlePaddle深度学习框架来实现一个简单的线性回归模型&#xff0c;旨在从给定的出租车…...

【JavaSE】【网络编程】UDP数据报套接字编程

目录 一、网络编程简介二、Socket套接字三、TCP/UDP简介3.1 有连接 vs 无连接3.2 可靠传输 vs 不可靠传输3.3 面向字节流 vs 面向数据报3.4 双向工 vs 单行工 四、UDP数据报套接字编程4.1 API介绍4.1.1 DatagramSocket类4.1.1.1 构造方法4.1.1.2 主要方法 4.1.2 DatagramPocket…...

45.坑王驾到第九期:Mac安装typescript后tsc命令无效的问题

点赞收藏加关注&#xff0c;你也能主打别墅&#xff01; 一、问题描述 Mac上终端运行如下命令&#xff1a; sudo npm install typescript -g //全局安装ts提示成功安装后&#xff0c;我测试tsc -v这个命令时出现如下错误&#xff1a; 也就是说找不到 tsc 命令。 二、解决方…...

计算机毕业设计 java 游戏道具交易平台管理系统 SpringBoot 游戏道具安全交易管理平台 JavaWeb 游戏道具交易与订单管控系统

计算机毕业设计 java 游戏道具交易平台管理系统 287kc9&#xff0c;末尾的数字和英文也要加上 &#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享随着游戏行业的蓬勃发展&#xff0c;游戏道具交易…...

java毕业设计基于springboot西岭雪山智慧景区管理系统

前言 随着旅游业的快速发展和游客数量的不断增加&#xff0c;西岭雪山景区面临着越来越多的管理挑战。传统的景区管理方式往往存在效率低下、信息不透明、游客体验差等问题。为了解决这些困境&#xff0c;基于Spring Boot的西岭雪山智慧景区管理系统应运而生。该系统旨在通过先…...

AI画家助手:OpenClaw+GLM-4.7-Flash自动生成Midjourney提示词并管理作品

AI画家助手&#xff1a;OpenClawGLM-4.7-Flash自动生成Midjourney提示词并管理作品 1. 为什么需要AI画家助手&#xff1f; 去年我开始尝试用Midjourney进行艺术创作时&#xff0c;遇到了两个头疼的问题&#xff1a;一是提示词&#xff08;prompt&#xff09;优化需要反复调试…...

BIM动画进了数字孪生就“瘫了”?一招破解模型迁移死局

作为一名深耕建筑、工程与施工&#xff08;AEC&#xff09;领域的设计师或工程师 是否曾经历过这样的困境&#xff1a; 在Revit、Fuzor、Navisworks、Lumion或BIM FILM等专业软件中 耗费大量心血构建了高精度建筑信息模型&#xff08;BIM&#xff09; 并为其赋予了复杂的施工模…...

论文开题不再愁!书匠策AI带你玩转开题报告

在学术探索的征途中&#xff0c;每一位学子都渴望找到一把开启智慧之门的钥匙。对于即将踏上论文写作之旅的你来说&#xff0c;开题报告无疑是那把至关重要的钥匙。然而&#xff0c;面对复杂的选题、繁琐的内容填充以及格式要求&#xff0c;你是否常常感到无从下手&#xff1f;…...

STM32栈空间溢出处理与优化技术

STM32栈空间溢出处理技术解析1. 栈空间溢出问题概述在STM32嵌入式开发中&#xff0c;函数内部定义的局部变量存储在栈空间中。STM32的启动文件中预定义了栈空间大小&#xff0c;当局部变量占用空间超过预设栈大小时&#xff0c;虽然编译过程不会报错&#xff0c;但运行时可能出…...

测试覆盖率99.5%的终极革命:claude-code-sub-agents如何重新定义自动化测试

测试覆盖率99.5%的终极革命&#xff1a;claude-code-sub-agents如何重新定义自动化测试 【免费下载链接】claude-code-sub-agents Collection of specialized AI subagents for Claude Code for personal use (full-stack development). 项目地址: https://gitcode.com/gh_mi…...

Rust的trait对象大小与动态分发在虚函数表实现上的差异

Rust作为一门现代系统编程语言&#xff0c;其独特的trait对象和动态分发机制在性能与灵活性之间取得了巧妙平衡。与C等语言的虚函数表实现相比&#xff0c;Rust的trait对象在内存布局和分发逻辑上展现出显著差异&#xff0c;这些差异直接影响着程序的内存使用效率和运行时行为。…...

Dify + Weaviate/Qdrant混合重排架构实践(支持动态权重调度、Fallback降级与A/B测试埋点)

第一章&#xff1a;Dify重排序架构的核心设计哲学Dify 的重排序&#xff08;Reranking&#xff09;模块并非简单叠加于检索之后的后处理步骤&#xff0c;而是在整个 LLM 应用生命周期中承担语义对齐、意图强化与可信度校准三重使命的设计原语。其核心哲学可凝练为&#xff1a;*…...

LaTeX多行大括号公式速成指南:5分钟搞定不等式排版(附常见错误排查)

LaTeX多行大括号公式速成指南&#xff1a;5分钟搞定不等式排版&#xff08;附常见错误排查&#xff09; 在学术写作中&#xff0c;数学公式的排版质量直接影响论文的专业性。对于不等式组、分段函数等需要多行对齐的场景&#xff0c;LaTeX的大括号语法是每个研究者必须掌握的技…...