LeetCode771 寶石與石頭

2022-07-09 01:24:14 字數 1008 閱讀 9291

非商業,leetcode鏈結附上:

進入正題。

題目:

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

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

示例:

示例 1:

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

輸出: 3

示例 2:

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

輸出: 0

注意:s 和 j 最多含有50個字母。

j 中的字元不重複。

**實現:

//暴力法

public int numjewelsinstones(string j, string s) }}

return jewelscount;

}//時間複雜度o(mn),空間複雜度o(1)

//雜湊集合

public int numjewelsinstones(string j, string s)

for (int i = 0; i < stoneslength; i++)

}return jewelscount;

}

//時間複雜度o(m + n),其中m是字串j度長度,n是字串s的長度

//空間複雜度o(m)

分析:

之所以把這道題單獨拎出來,是在寫的時候感覺到了暴力方法的暴力美學,不摻雜多餘的技巧,也不需要太多的解釋。

有一點要注意的是chatat()方法的使用,之前偶爾會將字串轉化成字元陣列,這樣就在無形中增加了空間複雜度。

暴力方法基本都不會是最終最優的解法,在解演算法題或人生中也都逐漸的遠離暴力的解決問題的方式吧。

--end

Leetcode 771 寶石與石頭

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

Leetcode 771 寶石與石頭

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

LeetCode 771 寶石與石頭

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