Cho chuỗi J biểu diễn các loại trang sức (chữ cái), chuỗi S biểu diễn các viên đá. Đếm số đá trong S cũng là trang sức. Phân biệt chữ hoa/thường. Ví dụ: J = "aZc", S = "catTableZebraPicnic" → 7 trang sức.
Giải pháp
Chuyển J thành tập hợp (dictionary) để tra cứu O(1). Duyệt S, nếu ký tự có trong J thì tăng đếm.
Ví dụ
Triển khai Python:
class Solution(object):
def numJewelsInStones(self, J, S):
jewels = {}
for i in J:
jewels[i] = 1
number = 0
for i in S:
if i in jewels:
number+=1
return number
ob1 = Solution()
print(ob1.numJewelsInStones("aZc", "catTableZebraPicnic")) Đầu vào
"aZc" "catTableZebraPicnic"
Đầu ra
7