Store jewel characters in a set and count stone characters that occur in it.
Complexity
O(j + s) time and O(j) space.
Count how many owned stones use a character designated as a jewel.
Store jewel characters in a set and count stone characters that occur in it.
O(j + s) time and O(j) space.
package main
func numJewelsInStones(jewels string, stones string) int {
jewelSet := map[rune]bool{}
for _, jewel := range jewels {
jewelSet[jewel] = true
}
count := 0
for _, stone := range stones {
if jewelSet[stone] {
count++
}
}
return count
}
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
jewel_set = set(jewels)
return sum(stone in jewel_set for stone in stones)
function numJewelsInStones(jewels: string, stones: string): number {
const jewelSet = new Set(jewels);
let count = 0;
for (const stone of stones) if (jewelSet.has(stone)) count += 1;
return count;
}