题干
给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
字母区分大小写,因此 “a” 和 “A” 是不同类型的石头。
示例
思路
用set可以降重的功能,把宝石集合先弄出来,然后手上拿着一堆石头,一个个与对照宝石库里是不是有这个石头,有,那这个石头就是一个宝石,返回石头堆里的宝石数量即可
代码
class Solution {
public int numJewelsInStones(String jewels, String stones) {
if(jewels==null||stones==null) return -1;
int count=0;
Set<Character> set=new HashSet<>();
//获取宝石的种类
for(int i=0;i<jewels.length();i++){
char tmp=jewels.charAt(i);
set.add(tmp);
}
//遍历手上的石头,是宝石就计数器加1
for(int i=0;i<stones.length();i++){
char tmp=stones.charAt(i);
if(set.contains(tmp)){
count++;
}
}
return count;
}
}