# Jewels and Stones

#1

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
```

Note:

• `S` and `J` will consist of letters and have length at most 50.
• The characters in `J` are distinct.

#2

Maintain a hash map of all jewels, check each stone against the map, to see if it is a jewel, increase the count if it is. Runs in `O(n)` time.

``````func numJewelsInStones(J string, S string) int {
result := 0
if len(J)==0{ return result }
jmap := make(map[rune]bool, 0)
for _, ch := range J{
if !jmap[ch]{
jmap[ch] = true
}
}

for _, ch := range S{
if jmap[ch]{
result++
}
}

return result
}
``````