leetcode 771. 寶石與石頭【Easy】【雜湊表】
阿新 • • 發佈:2018-11-11
題目:
給定字串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實現。程式碼二用Java實現,用到了HashMap(雜湊表)。
程式碼一:
class Solution(object): def numJewelsInStones(self, J, S): """ :type J: str :type S: str :rtype: int """ list_J = list(J) list_S = list(S) res = 0 for i in list_S: if i in list_J: res += 1 return res
程式碼二:
class Solution { public int numJewelsInStones(String J, String S) { int res = 0; HashMap<Character, Integer> hashMap = new HashMap<>(); for(int i=0;i<J.length();i++){ hashMap.put(J.charAt(i), i); } for (int j = 0;j<S.length();j++){ if (hashMap.containsKey(S.charAt(j))){ res ++; } } return res; } }