0771. 宝石与石头
大约 1 分钟
0771. 宝石与石头
- 标签:哈希表、字符串
- 难度:简单
题目链接
题目大意
描述:给定一个字符串 代表石头中宝石的类型,再给定一个字符串 代表你拥有的石头。 中每个字符代表了一种你拥有的石头的类型。
要求:计算出拥有的石头中有多少是宝石。
说明:
- 字母区分大小写,因此 和 是不同类型的石头。
- 。
- 和 仅由英文字母组成。
- 中的所有字符都是唯一的。
示例:
- 示例 1:
输入:jewels = "aA", stones = "aAAbbbb"
输出:3
- 示例 2:
输入:jewels = "z", stones = "ZZ"
输出:0
解题思路
思路 1:哈希表
- 用 来维护石头中的宝石个数。
- 先使用哈希表或者集合存储宝石。
- 再遍历数组 ,并统计每块石头是否在哈希表中或集合中。
- 如果当前石头在哈希表或集合中,则令 加 。
- 如果当前石头不在哈希表或集合中,则不统计。
- 最后返回 。
思路 1:代码
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
jewel_dict = dict()
for jewel in jewels:
jewel_dict[jewel] = 1
count = 0
for stone in stones:
if stone in jewel_dict:
count += 1
return count
思路 1:复杂度分析
- 时间复杂度:,其中 是字符串 的长度, 是 的长度。
- 空间复杂度:,其中 是字符串 的长度。