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

【算法笔记】ch01_01_0771 宝石与石头

笔记介绍:

本项目是datawhale发布的LeetCode 算法笔记(Leetcode-Notes)课程完成笔记,根据推荐题目循序渐进练习算法题目。主要用python进行书写相关代码,会介绍解题思路及跑通解法。

0771. 宝石与石头

题目大意

描述:给定一个字符串 jewels 代表石头中宝石的类型,再给定一个字符串 stones 代表你拥有的石头。stones 中每个字符代表了一种你拥有的石头的类型。

要求:计算出拥有的石头中有多少是宝石。

说明

  • 字母区分大小写,因此 aA 是不同类型的石头。
  • 1 ≤ j e w e l s . l e n g t h , s t o n e s . l e n g t h ≤ 50 1 \le jewels.length, stones.length \le 50 1jewels.length,stones.length50
  • jewelsstones 仅由英文字母组成。
  • jewels 中的所有字符都是唯一的。

示例

  • 示例 1:

    输入:jewels = "aA", stones = "aAAbbbb"
    输出:3
    
  • 示例 2:

    输入:jewels = "z", stones = "ZZ"
    输出:0
    

解题思路

我们需要统计字符串 stones 中出现在字符串 jewels 中的字符数量。为了高效地进行统计,我们可以先将 jewels 字符串转换为一个集合 jewelsSet,这样我们可以在 O ( 1 ) O(1) O(1) 的时间复杂度内查询一个字符是否是宝石。然后遍历 stones 字符串,对于每个字符,如果它存在于 jewelsSet 中,就将计数器加一。

解题 Python 代码

def analysis(jewelsSet: list, stones: list):return sum(s in jewelsSet for s in stones)def main():# 主要逻辑代码input_jewelsSet = list(input('请输入宝石字符集,以空格分隔:').split())input_stones = list(input('请输入拥有的石头字符集,以空格分隔:').split())print('拥有的宝石数量:', analysis(input_jewelsSet, input_stones))if __name__ == "__main__":main()

相关文章:

【算法笔记】ch01_01_0771 宝石与石头

笔记介绍: 本项目是datawhale发布的LeetCode 算法笔记(Leetcode-Notes)课程完成笔记,根据推荐题目循序渐进练习算法题目。主要用python进行书写相关代码,会介绍解题思路及跑通解法。 0771. 宝石与石头 题目大意 描…...

jQuery瀑布流画廊,瀑布流动态加载

jQuery瀑布流画廊&#xff0c;瀑布流动态加载 效果展示 手机布局 jQuery瀑布流动态加载 HTML代码片段 <!-- mediabanner --><div class"mediabanner"><img src"img/mediabanner.jpg" class"bg"/><div class"text&qu…...

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬&#xff0c;我又回来了&#xff0c;最近2月太忙啦&#xff08;过年、奶娃、本子、材料、结题&#xff09;&#xff0c;断更了。现水一篇证明我还活着&#xff01;&#xff01;&#xff01; 最近在写国自然本子&#xff0c;遇到一个估计大家都会遇到的问…...

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…...

​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】

欢迎来CILMY23的博客喔&#xff0c;本期系列为​【C语言】长篇详解&#xff0c;字符系列篇3-----strstr&#xff0c;strtok&#xff0c;strerror字符串函数的使用【图文详解​】&#xff0c;图文讲解各种字符串函数&#xff0c;带大家更深刻理解C语言中各种字符串函数的应用&am…...

如何实现一个K8S DevicePlugin?

什么是device plugin k8s允许限制容器对资源的使用&#xff0c;比如CPU和内存&#xff0c;并以此作为调度的依据。 当其他非官方支持的设备类型需要参与到k8s的工作流程中时&#xff0c;就需要实现一个device plugin。 Kubernetes提供了一个设备插件框架&#xff0c;你可以用…...

Android LruCache源码分析

文章目录 Android LruCache源码分析概述LruCache和LinkedHashMap关系源码分析属性写入数据读取数据删除缓存 Android LruCache源码分析 概述 LruCache&#xff08;Least Recently Used Cache&#xff0c;最近最少使用缓存&#xff09;是 Android 中的一种缓存机制。 根据数据…...

如何使用Inno Setup制作Unity构建程序的Windows安装程序

1. 准备 &#xff08;1&#xff09;准备好Unity构建的程序集合 必须包括&#xff1a; Data文件夹&#xff08;xxx_Data&#xff09; Mono文件夹&#xff08;MonoBleedingEdge&#xff09; 打包的应用程序文件&#xff08;xxx.exe&#xff09; Unity播放器dll文件&#xff…...

linux 面试题

1.linux操作系统的常用指令可以详细说下吗,平常哪些用的比较多 文件目录操作命令: ls cd more cat tail mkdir touch rm rmdir 拷贝复制: cp mv 打包解包压缩解压: tar -z 解亚压缩 -c 打包 -x 解包 -v 显示过程 -f 指定文件名 文本编辑: vi vim 查找: find 查找文件 gre…...

嵌入式中逻辑分析仪基本操作方法

前期准备 1.一块能触摸的屏对应的主板机 2.逻辑分析仪对应的软件工具 3.对应的拓展板 4.确定拓展板的引脚分布情况 第一步&#xff1a;逻辑分析仪j基本操作 1.数据捕捉需要先进行对应软件安装,并按照需求进行配置 2.这里以A20为例:此手机使用显示驱动芯片CST148,触摸屏分辨…...

ONLYOFFICE 桌面编辑器 v8.0 更新内容详细攻略

文章目录 引言PDF 表单RTL 支持电子表格中的新增功能Moodle 集成用密码保护 PDF 文件从“开始”菜单快速创建文档本地界面主题下载安装桌面编辑工具总结 引言 官网链接&#xff1a; ONLYOFFICE 官方网址 ONLYOFFICE 桌面编辑器是一款免费的文档处理软件&#xff0c;适用于 Li…...

2024-2-22 作业

作业要求&#xff1a; 复习前面知识点(指针、结构体、函数)整理思维导图顺序表(按位置插入、按位置删除和去重、重新写)理解链表的代码&#xff0c;尝试写一下链表的尾插和输出 1.复习前面知识点(指针、结构体、函数) 2.整理思维导图 3.顺序表(按位置插入、按位置删除和去重、…...

2.1 RK3399项目开发实录-升级固件介绍(物联技术666)

1. 介绍 1.1. 前言 AIO-3399J 出厂默认安装Android操作系统&#xff0c;如果用户要运行其他操作系统&#xff0c;需要使用对应的固件烧写到主板。 AIO-3399J 有灵活的启动方式。一般情况下&#xff0c;除非硬件损坏&#xff0c;AIO-3399J 开发板是不会变砖的。 如果在升级过…...

Uniapp + VUE3.0 实现双向滑块视频裁剪效果

效果图 <template><view v-if"info" class"all"><video:src"info.videoUrl"class"video" id"video" :controls"true" object-fit"fill" :show-fullscreen-btn"false"play-btn…...

【算法小讲堂】#1 贪心算法

引入——关于贪心算法 我们先来做一个小游戏——现在假设自己是一个小偷&#xff0c;桌上有一些物品&#xff0c;包括一台iPhone15、一个充电宝、一个眼罩和一个溜溜梅。此时&#xff0c;你听说警察即将到来&#xff0c;那么你会先带走哪个东西呢&#xff1f; 一般来讲&#xf…...

判断当前shell版本

查看$SHELL环境变量&#xff1a; echo $SHELL输出的结果将是当前使用的shell的路径。例如&#xff0c;如果输出为 /bin/bash&#xff0c;则表示当前使用的是Bash shell。 查看ps命令输出&#xff1a; ps -p $$上述命令将显示当前终端进程的信息&#xff0c;其中 $$ 代表当前进…...

如何实现两个电脑之间通过以太网(网线)实现文件互传

如何实现两个电脑之间通过以太网&#xff08;网线&#xff09;实现文件互传 本帖目的&#xff1a;介绍如何通过以太网&#xff08;网线&#xff09;连接两台电脑&#xff0c;通过文件夹共享的方式&#xff0c;实现两台电脑之间的文件互传。 本帖以笔者实际工作上遇到的场景为例…...

Jenkins 中部署Nodejs插件并使用,并构建前端项目(3)

遇到多个版本nodeJS需要构建的时候 1、第一种就是一个配置安装&#xff0c;然后进行选中配置 2、第二种就是插件&#xff1a;nvm-wrapper&#xff0c;我们还是选用NodeJS插件&#xff1a; &#xff08;1&#xff09;可以加载任意npmrc文件&#xff1b; &#xff08;2&#x…...

VUE为什么有的属性要加冒号

<el-menu-item :index "/item.menuClick" v-for"(item,i) in menu"><i class"item.menuIcon" ></i><span slot"title">{{item.menuName}}</span></el-menu-item>不加不行 加了好像是吧整体作为…...

微信小程序 --- wx.request网络请求封装

网络请求封装 网络请求模块难度较大&#xff0c;如果学习起来感觉吃力&#xff0c;可以直接学习 [请求封装-使用 npm 包发送请求] 以后的模块 01. 为什么要封装 wx.request 小程序大多数 API 都是异步 API&#xff0c;如 wx.request()&#xff0c;wx.login() 等。这类 API 接口…...

Transformer在车道线检测中的实战应用:LSTR模型从理论到代码实现

Transformer在车道线检测中的实战应用&#xff1a;LSTR模型从理论到代码实现 自动驾驶技术的快速发展对车道线检测提出了更高要求。传统基于CNN的分割方法往往需要复杂的后处理流程&#xff0c;而LSTR&#xff08;Lane Shape Prediction with Transformers&#xff09;通过端到…...

LeagueAkari终极指南:智能游戏辅助工具快速上手与深度配置

LeagueAkari终极指南&#xff1a;智能游戏辅助工具快速上手与深度配置 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在…...

AceMenu:嵌入式轻量级菜单框架设计与实践

1. AceMenu 库概述&#xff1a;面向嵌入式人机交互的轻量级菜单框架AceMenu 是一个专为资源受限嵌入式系统设计的轻量级、可移植菜单管理库。其核心设计哲学是“以最少的硬件资源开销&#xff0c;实现最直观的用户导航体验”。不同于通用 GUI 框架&#xff08;如 LVGL 或 Touch…...

FSCalendar终极指南:打造完美iOS日历体验的完整教程

FSCalendar终极指南&#xff1a;打造完美iOS日历体验的完整教程 【免费下载链接】FSCalendar A fully customizable iOS calendar library, compatible with Objective-C and Swift 项目地址: https://gitcode.com/gh_mirrors/fs/FSCalendar FSCalendar是一款功能强大且…...

团队用ai写代码越来越猛但为什么改个功能像在拆炸弹背后是流程断了

最近不少团队反馈&#xff0c;AI Coding 跑得飞快&#xff0c;两周就能堆出新功能&#xff0c;可一旦要改个按钮颜色&#xff0c;整个系统却像在拆炸弹。这种“改功能崩塌”的怪圈&#xff0c;正让许多管理者头疼&#xff1a;明明用了最先进的工具&#xff0c;交付反而更慢了。…...

高效PDF处理:用PDF Arranger实现极简文档管理

高效PDF处理&#xff1a;用PDF Arranger实现极简文档管理 【免费下载链接】pdfarranger Small python-gtk application, which helps the user to merge or split PDF documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical int…...

Rock3A开发板实战:OpenBMC移植全记录(附避坑指南)

Rock3A开发板OpenBMC移植实战&#xff1a;从硬件适配到性能调优 当RK3568处理器遇上OpenBMC&#xff0c;会碰撞出怎样的火花&#xff1f;作为瑞芯微旗下性能与功耗平衡的明星芯片&#xff0c;RK3568在边缘计算领域已证明其价值。而将其应用于BMC&#xff08;基板管理控制器&…...

用Mermaid Live Editor 5分钟搞定技术图表:从零开始的完整实战指南

用Mermaid Live Editor 5分钟搞定技术图表&#xff1a;从零开始的完整实战指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid…...

最完整的llm-graph-builder入门指南:从安装到知识图谱可视化

最完整的llm-graph-builder入门指南&#xff1a;从安装到知识图谱可视化 【免费下载链接】llm-graph-builder Neo4j graph construction from unstructured data 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-graph-builder 你还在为非结构化数据转化为结构化…...

基于人工电场搜索智能优化算法的水库发电和供水优化调度

基于人工电场搜索智能优化算法的水库发电和供水优化调度&#xff1b; 代码为MATLAB编写&#xff0c;可直接运行&#xff1b; 含有实例数据&#xff0c;点击即可运行&#xff0c;替换成自己数据点击即可出结果&#xff0c;如图。在水库管理中&#xff0c;实现发电和供水的优化调…...