- 宝石与石头
简单
给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
字母区分大小写,因此 “a” 和 “A” 是不同类型的石头
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
# 1.暴力枚举
def answer1(jewels,stones):
#1. 逐个比较 O(m*n)
res = 0
for a in jewels:
for b in stones:
if a==b :
res+=1
return res
#2. 集合O(m+n),m = len(jewels),n = len(stones)
def answer2(jewels,stones):
res = 0
Map = collections.defaultdict(int)
# 集合的 in 检索 时间复杂度为 O(1)
for s in stones:
Map[s] += 1
for je in jewels:
res+=Map[je]
return res
#res = answer1(jewels,stones)
#res = answer2(jewels,stones)
return res