# 【LeetCode】 771. Jewels and Stones
## Description
> 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"`.
> Note:
> * `S` and `J` will consist of letters and have length at most 50.
> * The characters in `J` are distinct.
> 你有一段字串`J`代表有哪些石頭的種類是珠寶,還有一段字串`S`代表你有哪些石頭。每一個在`S`裡面的字元是代表你有的石頭的種類。你想要知道你有的石頭之中有多少珠寶。
> 這些在`J`裡面的字母都不相同,並且在`J`和`S`裡面的字元一定是字母。字母的大小寫是需要在意的,所以`a`和`A`被視為是不同種類的石頭。
> 注意:
> * `S` 和 `J` 只包含字母且長度不超過50。
> * `J` 裡面的字元都不相同。
## Example:
```
Example 1:
Input: J = "aA", S = "aAAbbbb"
Output: 3
Example 2:
Input: J = "z", S = "ZZ"
Output: 0
```
## Solution
* 用一個hash去紀錄`J`裡面出現的字。
* 再用一個迴圈去比對`S`的字是否出現在hash裡面。
### Code
```C++=1
class Solution {
public:
int numJewelsInStones(string J, string S) {
unordered_set<char> hash;
int count = 0;
for(int i = 0; i < J.length(); i++)
hash.insert(J[i]);
for(int j = 0; j < S.length(); j++)
if(hash.count(S[j]))
count++;
return count;
}
};
```
###### tags: `LeetCode` `C++`