python-leetcode-771. 宝石与石头

771. 宝石与石头 - 力扣(LeetCode)

可以使用 Python 代码来解决这个问题:

def numJewelsInStones(jewels: str, stones: str) -> int:
    jewel_set = set(jewels)  # 使用集合存储宝石类型,加速查找
    return sum(stone in jewel_set for stone in stones)  # 统计 stones 中是宝石的个数

# 示例
jewels = "aA"
stones = "aAAbbbb"
print(numJewelsInStones(jewels, stones))  # 输出 3

解释:

  1. jewels 转换为集合 jewel_set,这样查找操作的时间复杂度是 O(1)。

  2. 遍历 stones,统计其中属于 jewel_set 的字符数量。

  3. 使用 sum() 进行计数,最终返回结果。

这个方法的时间复杂度是 O(m + n),其中 mjewels 的长度,nstones 的长度,效率很高。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值