일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Leet Coding Challenge
- SWIFTUI
- 알고리즘문제풀이
- 프로그래머스
- leetcode
- 컨볼루션
- 코딩테스트
- leet code
- PYTHON
- 코테준비
- DSP
- 코테
- 릿코드
- DTFT
- 트라이
- backjoon
- dft
- 파이썬
- 스위프트
- 백준
- 독서노트
- Trie
- IOS
- 알고리즘 문제풀이
- 전자공학
- SWIFT
- 카카오 코딩테스트
- 이산신호처리
- 알고리즘
- 신호처리
Archives
- Today
- Total
매일 매일 성장하는 섭섭군
[LeetCode Top Interview Questions] Group Anagrams 본문
반응형
leetcode.com/explore/interview/card/top-interview-questions-medium/103/array-and-strings/778/
문제요약
이번 문제는 단어들을 같은 알파벳을 사용한 것 끼리 묶는 것 입니다.
예시를 보면 알 수 있듯이 'a', 'e', 't' 를 사용한 "ate", "eat", "tea"가 묶여있습니다.
결과값으로 묶은 단어를 Return 하면 됩니다.
문제풀이 IDEA
어떤 알파벳을 사용했는지 아는것이 핵심입니다.
- 문자열을 하나씩 쪼개어 사전순으로 재배치 합니다.
- 재배치한 문자열 딕셔너리의 Key로 사용하고 원래 문자열은 Value 배열안에 추가합니다.
- Value 값들을 list로 묶어서 반환합니다.
Code
질문과 피듭백은 언제나 감사드립니다.
from typing import List
class Solution:
def getAnagrams(self, word) :
tmep = list(word)
tmep = sorted(tmep)
result = "".join(tmep)
return result
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagramsDict = dict()
for i in strs :
ana = self.getAnagrams(i)
if ana in anagramsDict :
anagramsDict[ana].append(i)
else :
anagramsDict[ana] = [i]
answer = list(anagramsDict.values())
return answer
반응형
'알고리즘 문제풀이 > LeetCode' 카테고리의 다른 글
[Leet Coding Challenge]Excel Sheet Column Number, 2020.08.08~14 (0) | 2020.08.11 |
---|---|
[Leet Coding Challenge] Add and Search Word - Data structure design, 2020.08.01~07 (0) | 2020.08.06 |
[LeetCode Top Interview Questions] Happy Number (0) | 2020.08.05 |
[Leet Coding Challenge] Power of FourSolution, 2020.08.01~07 (0) | 2020.08.04 |
[Leet Coding Challenge] Valid Palindrome, 2020.08.01~07 (0) | 2020.08.04 |
Comments