当前位置: 首页 > 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()
http://www.lryc.cn/news/306512.html

相关文章:

  • jQuery瀑布流画廊,瀑布流动态加载
  • 玩转ChatGPT:参考文献速查
  • [设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • 如何实现一个K8S DevicePlugin?
  • Android LruCache源码分析
  • 如何使用Inno Setup制作Unity构建程序的Windows安装程序
  • linux 面试题
  • 嵌入式中逻辑分析仪基本操作方法
  • ONLYOFFICE 桌面编辑器 v8.0 更新内容详细攻略
  • 2024-2-22 作业
  • 2.1 RK3399项目开发实录-升级固件介绍(物联技术666)
  • Uniapp + VUE3.0 实现双向滑块视频裁剪效果
  • 【算法小讲堂】#1 贪心算法
  • 判断当前shell版本
  • 如何实现两个电脑之间通过以太网(网线)实现文件互传
  • Jenkins 中部署Nodejs插件并使用,并构建前端项目(3)
  • VUE为什么有的属性要加冒号
  • 微信小程序 --- wx.request网络请求封装
  • 通义千问Qwen-7B-Chat Windows本地部署教程-详细认真版
  • 探索C语言位段的秘密
  • 数据库-数据库设计-社交关系
  • YOLO算法改进Backbone系列之:EfficientViT
  • JANGOW: 1.0.1
  • Elasticsearch 创建index库 timeout
  • 2024最新可用免费天气预报API接口
  • 【AIGC】开源声音克隆GPT-SoVITS
  • YOLOv9图像标注和格式转换
  • 车载系统相关
  • AWS对文本进行语言识别