栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python每日一练-----宝石与石头

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python每日一练-----宝石与石头

(day40)

目录

题目:

in函数

一行写法

set集合


题目:

 给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

字母区分大小写,因此 "a" 和 "A" 是不同类型的石头。

本来我是不想写这题的,因为确实是太简单了。不过我看了这题的评论后发现网友的理解高度是在是太高了。

(2018的评论)

 

真是蚌埠住了。 

我们直接给出几种解法。

in函数
def numJewelsInStones(jewels, stones):
    answer = 0
    for item in stones:
        if item in jewels:
            answer += 1

    return answer

这里有个疑问就是in函数的时间复杂度是多少。查阅资料后找到in函数的时间复杂度视情况而定。

in用于列表时间复杂度为O(n)

in用于字典或者集合时间复杂度为)O(1)

一行写法
def numJewelsInStones(jewels, stones):
    return sum(s in jewels for s in stones)

由上面in的时间复杂度讨论,我们可以优化代码

set集合
def numJewelsInStones(jewels, stones):
    jewelsSet = set(jewels)
    return sum(s in jewelsSet for s in stones)

今天就到这,明天见。

❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄end❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号