취미가 좋다
208. Implement Trie (Prefix Tree) 본문
https://leetcode.com/problems/implement-trie-prefix-tree/
Solution
class Trie:
def __init__(self):
self.dic = {}
def insert(self, word):
temp = self.dic
for c in word:
if not temp.get(c):
temp[c] = {}
temp = temp[c]
temp['0'] = True
def search(self, word):
temp = self.dic
for c in word:
if not temp.get(c):
return False
temp = temp[c]
if '0' in temp:
return True
def startsWith(self, prefix):
temp = self.dic
for c in prefix:
if not temp.get(c):
return False
temp = temp[c]
return True
- 문자열들을 효율적을 관리하기 위한 trie 구조를 구현하는 문제이다.
- dictionary를 선언하고 다음 글자를 key로 하는 dict를 갖는다.
- insert로 받은 문자의 마지막에 0을 넣으면서, search로 해당 문자를 찾을 때 존재하는 지를 확인한다.
- temp.get('0') 대신에 '0' in temp 로 써도 된다.
Another
def search(self, word):
return self.startsWith(word + '0')
- search 함수의 결과를 startsWith을 사용하여 계산한다.
'알고리즘 문제풀이 > Leetcode' 카테고리의 다른 글
215. Kth Largest Element in an Array (0) | 2021.09.03 |
---|---|
210. Course Schedule II (0) | 2021.08.31 |
207. Course Schedule (0) | 2021.08.24 |
200. Number of Islands (0) | 2021.08.20 |
199. Binary Tree Right Side View (0) | 2021.08.17 |
Comments