09 Sept 2026Go / Python / TypeScriptEasy

Jewels and Stones

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.

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

Solution files

Gojewels-and-stones/solution.go
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
}
Pythonjewels-and-stones/solution.py
class Solution:
    def numJewelsInStones(self, jewels: str, stones: str) -> int:
        jewel_set = set(jewels)
        return sum(stone in jewel_set for stone in stones)
TypeScriptjewels-and-stones/solution.ts
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;
}