771 寶石與石頭

2021-10-09 22:47:03 字數 1084 閱讀 1341

給定字串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...