【題目】
給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。 s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。
j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此"a"和"a"是不同型別的石頭。
【示例 1】
輸入: j = 「aa」, s = 「aaabbbb」
輸出: 3
【示例 2】
輸入: j = 「z」, s = 「zz」
輸出: 0
【注意】
s 和 j 最多含有50個字母。
j 中的字元不重複。
【**】
【python】
【方法1:使用資料結構dict】
class
solution
:def
numjewelsinstones
(self, jewels:
str, stones:
str)
->
int:
cnt=
dict
(counter(stones)
) c=
0for key in cnt:
if key in jewels:
c+=cnt[key]
return c
【方法2:最質樸的方式】遍歷stones字串,挨個字元判斷是否存在於jewels中
class
solution
:def
numjewelsinstones
(self, jewels:
str, stones:
str)
->
int:
c=0for s in stones:
if s in jewels:
c+=1return c
【方法3:一行**】
class
solution
:def
numjewelsinstones
(self, jewels:
str, stones:
str)
->
int:
return
sum(s in jewels for s in stones)
【方法4:使用資料結構set】
執行用時:
32 ms, 在所有 python3 提交中擊敗了95.04%的使用者
記憶體消耗:
14.8 mb, 在所有 python3 提交中擊敗了50.38%的使用者
class
solution
:def
numjewelsinstones
(self, jewels:
str, stones:
str)
->
int:
jewelsset =
set(jewels)
return
sum(s in jewelsset for s in stones)
771 寶石與石頭
給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。示例 1 輸入 j aa s aaabbbb 輸出 3...
771 寶石與石頭
給定字串j代表石頭中寶石的型別,和字串s代表你擁有的石頭。s中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j中的字母不重複,j和s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。示例 1 輸入 j aa s aaabbbb 輸出 3示例 2 輸...
771寶石與石頭
給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。示例 1 輸入 j aa s aaabbbb 輸出 3...