☀(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)
🌈set集合由上面in的时间复杂度讨论,我们可以优化代码
def numJewelsInStones(jewels, stones):
jewelsSet = set(jewels)
return sum(s in jewelsSet for s in stones)
今天就到这,明天见。🚀
❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄end❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)