题意

给定两个字符串 J 和 S,找出 J 中的字母出现在 S 中的次数。

题目来源:https://leetcode.com/problems/jewels-and-stones/

标记难度:Easy

提交次数:1/4

代码效率:93.10%

分析

把 J 和S 转换成字符数组,遍历 J 数组中的字符是否等于 S 中的 字符。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public int numJewelsInStones(String J, String S) {
char[] charJ = J.toCharArray();
char[] charS = S.toCharArray();
int count = 0;
for(char var : charJ){
for(int i = 0;i<charS.length;i++){
if(var == charS[i]){
count++;
}
}
}
return count;
}
}

参考

别人还有更好的做法:

  • 遍历 J 把字符放入 set 集合
  • 遍历 S 字符是否出现在 set 中
1
2
3
4
5
6
7
public int numJewelsInStones(String J, String S) {
int res = 0;
Set setJ = new HashSet();
for (char j: J.toCharArray()) setJ.add(j);
for (char s: S.toCharArray()) if (setJ.contains(s)) res++;
return res;
}

一些废话

第一次开始刷 Leetcode ,虽然做的是 easy 的题目,但还是没有参考其他人的答案自己完成了。开始有一点新鲜感和成就感了,希望可以坚持下去。

刚开始刷题使用的是 VS CODE 码代码,在网上看了一些网友的建议,为了应对后续面试可能要求手写编程的情况,所以现在是先用 IDE 把代码写出来,再手写输入 Leetcode 提交答案。

加油!