宝石与石头
简单题,简单说下思路:
题目意思很简单,从S中找出属于J这个集合的元素数量。但是S与J属于字符串类型。这题属于查找类型问题,这种问题非常适合使用HashSet来处理。
因此整体的思路就是:
1、首先建立一个HashSet对象用于存储J中出现的字母,然后遍历stones中的每个字母,如果包含在HashSet集合中,计数器就加一:
2、代码:
package solutions;
import java.util.HashSet;
public class test {
public static void main(String[] args) {
String jewels = "az";
String stones = "azzzZZZ";
int result = numJewelsInStones(jewels, stones);
System.out.println(result);
}
public static int numJewelsInStones(String jewels, String stones) {
int sum= 0;
HashSet<Character> hs = new HashSet<Character>();
for(int i = 0;i<jewels.length();i++){ // 把jewels 中的宝石存储到 set集合中;
char c = jewels.charAt(i);
hs.add(c);
}
for(int j=0; j<stones.length();j++) { //遍历查找
char c = stones.charAt(j);
if(hs.contains(c)) {
sum++;
}
}
return sum;
}
}