"""
771. Jewels and Stones
Difficulty: Easy

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

The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so "a" is considered a different type of stone from "A".


Example 1:

Input: J = "aA", S = "aAAbbbb"
Output: 3


Example 2:

Input: J = "z", S = "ZZ"
Output: 0
"""

class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        b = set(J)
        n_jewels = 0
        for c in S:
            if c in b:
                n_jewels += 1
        return n_jewels


if __name__ == "__main__":
    s = Solution()
    assert s.numJewelsInStones("aA", "aAAbbbb") == 3
