虽然是很简单的题,但是发现一个问题。
就是如何遍历一个String更好一点
class Solution {
public int numJewelsInStones(String J, String S) {
if (J == null || S == null) return 0;
Set<Character> set = new HashSet<>();
for(int i = 0; i < J.length(); i++){
set.add(J.charAt(i));
}
int res = 0;
for(int i = 0; i < S.length(); i++){
if (set.contains(S.charAt(i)))
res++;
}
return res;
}
}
我是一个一个遍历,然后再把当前字符转化成char. 下面是copy别人的数组,S.toCharArray() 感觉更好。
public int numJewelsInStones(String J, String S) {
int[] jewels = new int[58];
for(char j: J.toCharArray()) {
jewels[j - 'A'] = 1;
}
int count = 0;
for(char s: S.toCharArray()) {
count = count + jewels[s - 'A'];
}
return count;
}