給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。 s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。
j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此"a"和"a"是不同型別的石頭。
輸入: j = 「aa」, s = 「aaabbbb」
輸出: 3
方法一:暴力解法
class
solution
:def
numjewelsinstones
(self, j:
str, s:
str)
->
int:
ifnot j or
not s:
return
0 count =
0for i in
range
(len
(j))
:for j in
range
(len
(s))
:if s[j]
==j[i]
: count+=
1return count
時間複雜度為o(mn)
方法二:借助set集合
class
solution
:def
numjewelsinstones
(self, j:
str, s:
str)
->
int:
ifnot j or
not s:
return
0 count =
0 ans =
set(j)
for j in
range
(len
(s))
:if s[j]
in ans:
count+=
1return count
時間複雜度:o(m+n) 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...