You're given strings jewels representing the types of stones that are jewels, and stones representing the stones you have. Each character in stones is a type of stone you have. You want to know how many of the stones you have are also jewels.

Letters are case sensitive, so "a" is considered a different type of stone from "A".

 

Example 1:

Input: jewels = "aA", stones = "aAAbbbb"
Output: 3

Example 2:

Input: jewels = "z", stones = "ZZ"
Output: 0

 

Constraints:

  • 1 <= jewels.length, stones.length <= 50
  • jewels and stones consist of only English letters.
  • All the characters of jewels are unique.




 from collections import Counter
class Solution:
    def numJewelsInStones(self, jewels: str, stones: str) -> int:

        # s_col = Counter(stones)
        # s = set(jewels)
        # count = 0
        # for j in s:
        #     if j in s_col:
        #         count+= s_col[j]
        # return count

        j_set = set(jewels)
        count = 0
        for s in stones:
            if s in j_set:
                count+=1

        return count

Random Note


Pythonic Time Complexity Wiki

Important to remember