题目大意:给出两个字符串,第一个字符串的每个字母代表一种珠宝的类型,第二个字符串的每个字母代表一种石头,求这些石头中有多少个是珠宝。
分析:哈希表应用。将出现在第一个字符串中的珠宝储存在哈希表中,搜索第二个字符串看哈希值是否为true即可。
代码:
class Solution {
public:
int numJewelsInStones(string J, string S) {
unordered_set<char> s;
for(int i = 0;i < J.size();i++){
s.insert(J[i]);
}
int num = 0;
for(int i = 0;i < S.size();i++){
if(s.find(S[i]) != s.end()) num++;
}
return num;
}
};
python更简单:
class Solution:
def numJewelsInStones(self, J: str, S: str) -> int:
num = 0
for i in range(0, len(S)):
if S[i] in J:
num = num + 1
return num