728x90
from collections import defaultdict
class Solution:
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
seen = defaultdict(int)
for r in ransomNote:
seen[r] += 1
for m in magazine:
if m in seen:
seen[m] -= 1
for v in seen.values():
if v > 0:
return False
return True
"fihjjjjei"
"hjibagacbhadfaefdjaeaebgi"
defaultdict(<class 'int'>, {'f': -1, 'i': 0, 'h': -1, 'j': 2, 'e': -2})
seen 이라는 dict에 0보다 큰 value가 남아있는 경우
ransomNote에 아직 string이 남아 있다는 뜻이기 때문에
루프 탈출
다른 풀이
set 과 count를 사용
class Solution:
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
c = set(ransomNote)
for x in c:
if ransomNote.count(x) > magazine.count(x):
return False
return True
728x90
댓글