Store jewel characters in a set and count stone characters that occur in it.
complexity
O(j + s) time and O(j) space.
solution files
- Go
jewels-and-stones/solution.go - Python
jewels-and-stones/solution.py - TypeScript
jewels-and-stones/solution.ts
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.
jewels-and-stones/solution.gojewels-and-stones/solution.pyjewels-and-stones/solution.tspackage 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 = class="syntax-number">0;
for (const stone of stones) if (jewelSet.has(stone)) count += class="syntax-number">1;
return count;
}