<--- 리트코드 49. Group Anagrams --->
# 에너그램 이란
일종의 언어유희로 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말한다.
# 문제: 문자열 배열을 받아 애너그램 단위로 그룹핑하라.
입력
["eat", "tea", "tan", "ate", "nat", "bat"] |
출력
[ ["ate","eat","tea"], ["nat","tan"], ["bat"] ] |
# 풀이
1. 정렬하여 딕셔너리에 추가
1
2
3
4
5
6
7
8
9
10
11
|
import collections
def group_anagrams(strs):
anagrams = collections.defaultdict(list)
for word in strs:
anagrams[''.join(sorted(word))].append(word)
return anagrams.values()
strs =["eat", "tea", "ate", "nat", "bat"]
print(group_anagrams(strs))
|
cs |
'Python' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 - 07. 두 수의 합 (0) | 2022.01.11 |
---|---|
파이썬 알고리즘 인터뷰 - 06. 가장 긴 팰린드롬 부분 문자열 (0) | 2022.01.10 |
파이썬 알고리즘 인터뷰 - 04. 가장 흔한 단어 (0) | 2022.01.10 |
파이썬 알고리즘 인터뷰 - 03. 로그파일 재정렬 (0) | 2022.01.05 |
파이썬 알고리즘 인터뷰 - 02. 문자열 뒤집기 (0) | 2022.01.05 |