소프트웨어에 대한 모든 것

LeetCode 풀기 - 1347. Minimum Number of Steps to Make Two Strings Anagram 본문

알고리즘/LeetCode

LeetCode 풀기 - 1347. Minimum Number of Steps to Make Two Strings Anagram

앤테바 2021. 12. 15. 21:11
반응형

1347. Minimum Number of Steps to Make Two Strings Anagram

https://leetcode.com/problems/minimum-number-of-steps-to-make-two-strings-anagram/

 

Minimum Number of Steps to Make Two Strings Anagram - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제)

솔루션1) dict 자료구조 사용

class Solution:
    def minSteps(self, s: str, t: str) -> int:
        s = Counter(s)
        t = Counter(t)
        
        for c, count in t.items():
            if c in s:
                t[c] -= s[c]
        return sum([count for c, count in t.items() if count > 0])

솔루션2) Counter 객체 사용

Counter 객체는 +, -, &, | operation을 지원합니다.

class Solution:
    def minSteps(self, s: str, t: str) -> int:
        s = Counter(s)
        t = Counter(t)        
        return sum((t - s).values())

 

Counter Mathematical operations

c = Counter(a=3, b=1)
d = Counter(a=1, b=2)
c + d                       # add two counters together:  c[x] + d[x]
Counter({'a': 4, 'b': 3})
c - d                       # subtract (keeping only positive counts)
Counter({'a': 2})
c & d                       # intersection:  min(c[x], d[x]) 
Counter({'a': 1, 'b': 1})
c | d                       # union:  max(c[x], d[x])
Counter({'a': 3, 'b': 2})

 

반응형
Comments