-
Notifications
You must be signed in to change notification settings - Fork 0
/
771.jewels-and-stones.cpp
62 lines (60 loc) · 1.29 KB
/
771.jewels-and-stones.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* @lc app=leetcode id=771 lang=cpp
*
* [771] Jewels and Stones
*
* https://leetcode.com/problems/jewels-and-stones/description/
*
* algorithms
* Easy (83.39%)
* Likes: 1531
* Dislikes: 283
* Total Accepted: 294.8K
* Total Submissions: 353.5K
* Testcase Example: '"aA"\n"aAAbbbb"'
*
* 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.
*
*
*/
class Solution {
public:
int numJewelsInStones(string J, string S) {
int cnt['z' - 'A' + 1] = {0};
int ret = 0;
for (auto c : S) {
cnt[c - 'A']++;
}
for (auto c : J) {
ret += cnt[c - 'A'];
}
return ret;
}
};