LeetCode 寶石與石頭

2021-08-17 22:21:51 字數 1293 閱讀 3959

給定字串j代表你現在擁有代表寶石的型別,和字串s代表你擁有的石頭。s中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。

j中的字母不重複,js中的所有字元都是字母。字母區分大小寫,因此"a""a"是不同型別的石頭。

輸入:j = "aa", s = "aaabbbb"

輸出:3

輸入:j = "z", s = "zz"

輸出:0

def

numjewelsinstones

(j, s)

: i =

0for s in s:

if s in j:

i +=

1return i

耗時:44 ms

def

numjewelsinstones

(j, s)

:return

sum(

[s in j for s in s]

)

耗時:40 ms

int

numjewelsinstones

(string j, string s)

}return i;

}

耗時:4ms

本道題的執行耗時,c++很輕鬆地碾壓了python,快了整整乙個量級。其中在程式設計的過程中,有些點需要注意,以及有些小技巧以後也可以使用:

在python中,我們使用in可以直接單個字元是否在乙個字串中,其實相當於對字串使用了set()函式轉化為list。

python中對for迴圈的簡寫,然後轉化為向量形式,可以像python第二種方法來寫。(當然可以用numpy包來直接計算,但是這裡不能用)

在c++中,可以直接定義string,計算string的長度使用.length()

c++句尾加分號加分號加分號!

**題目**:**

LeetCode 寶石與石頭

給定字串j代表你現在擁有代表寶石的型別,和字串s代表你擁有的石頭。s中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j中的字母不重複,j和s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。輸入 j aa s aaabbbb 輸出 3 includ...

leetcode 寶石與石頭

給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。輸入 j aa s aaabbbb 輸出 3這個題一開...

leetcode寶石與石頭

給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。示例 1 輸入 j aa s aaabbbb 輸出 3...