Leetcode Python - 49. Group Anagrams
Leetcode #49 - Group Anagrams
이제 blind 75 leetcode를 풀어보겠습니다. https://leetcode.com/discuss/interview-question/460599/Blind-75-LeetCode-Questions
리트코드의 문제 49 ‘Group Anagrams’을 파이썬으로 풀어 보도록 하겠습니다.
list에서 anagrams(철자 순서만 다른 단어)들 끼리 묶어 반환하는 문제입니다.
discuss 참고, 포인트는 해당 단어들을 sort해 tuple로 변환해 dictionary에 key로 두고 일치할 때마다 list를 append 해주는 것입니다.
전체 코드는 아래와 같습니다.
class Solution:
def groupAnagrams(self, strs):
d = {}
for w in strs:
key = tuple(sorted(w))
d[key] = d.get(key,[]) + [w]
return d.values()
시간복잡도는
- O(n) : 한 번의 loop
공간복잡도는
- O(n) : strs를 dictionary에 append