반응형
LeetCode 771. Jewels and Stones - 보석과 돌
문제
돌을 나타내는 S와 보석을 나타내는 J 가 주어졌을 때, 돌안에 보석이 몇개 들어있는지 알려주기
예시
풀이
1. 해시 테이블을 이용한 풀이
class Solution:
def numJewelsInStones(self, J: str, S: str) -> int:
freq = {}
count = 0
for char in S:
if not freq[char]:
freq[char] = 1
else:
freq[char] += 1
for char in J:
if freq[char]:
count += freq[char]
return count
2. defaultdict 이용하기
class Solution:
def numJewelsInStones(self, J: str, S: str) -> int:
freq = collections.defaultdict()
count = 0
for char in S:
freq[char] += 1
for char in J:
if char in freq:
count += freq[char]
return count
3. Count 이용하기
class Solution:
def numJewelsInStones(self, J: str, S: str) -> int:
freq = collections.Counter(S)
count = 0
for char in J:
count += freqs[char]
return count
4. 리스트 컴프리헨션으로 한줄로 풀어보기
class Solution:
def numJewelsInStones(self, J: str, S: str) -> int:
return sum(s in J for s in S)
반응형