【Leetcode】771. Jewels and Stones
(找了leetcode上最简单的一个题来找一下存在感)
You're given strings J
representing the types of stones that are jewels, and S
representing the stones you have. Each character in S
is a type of stone you have. You want to know how many of the stones you have are also jewels.
The letters in J
are guaranteed distinct, and all characters in J
and S
are letters. Letters are case sensitive, so "a"
is considered a different type of stone from "A"
.
Example 1:
Input: J = "aA", S = "aAAbbbb" Output: 3
Example 2:
Input: J = "z", S = "ZZ" Output: 0
Tips:J为不同的字符组成的字符串,从S中找出包含J中字符的总数。
解法一 两重for循环判断字符是否相同。19ms
public int numJewelsInStones(String J, String S) { int num = 0; for (int i = 0; i < S.length(); i++) { for (int j = 0; j < J.length(); j++) { if (S.charAt(i) == J.charAt(j)) { num++; } } } return num; }
解法二:
只循环S 判断J中是否包含,当前的S中的字符 39ms
public int numJewelsInStones2(String J, String S) { int num = 0; for (int i = 0; i < S.length(); i++) { char c = S.charAt(i); if (J.indexOf(c) != -1) { System.out.println(c); num++; } } return num; }
但是啊,反而是两层for循环快一些呢!