트라이 구현

4707 단어 leetcodepython
트리("시도"로 발음) 또는 접두사 트리는 문자열 데이터 세트에서 키를 효율적으로 저장하고 검색하는 데 사용되는 트리 데이터 구조입니다. 자동 완성 및 맞춤법 검사기와 같은 이 데이터 구조의 다양한 응용 프로그램이 있습니다.

Trie 클래스를 구현합니다.

Trie() trie 개체를 초기화합니다.
void insert(String word) 트리에 문자열 word를 삽입합니다.
부울 검색(문자열 단어) 문자열 단어가 트리에 있으면(즉, 이전에 삽입된 경우) 참을 반환하고 그렇지 않으면 거짓을 반환합니다.
boolean startsWith(String prefix) 접두사 접두사가 있는 이전에 삽입된 문자열 단어가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.


class TrieNode():
    def __init__(self):
        self.children = {}
        self.endOfWord = False

class Trie:
    def __init__(self):
        self.root = TrieNode()

    def insert(word):
        cur = self.root
        for c in word:
            if c not in cur.children:
                cur.children[c] = TrieNode()
            cur = cur.children[c]
        cur.endOfWord = True

    def search(word):
        cur = self.root
        for c in word:
            if c not in cur.children:
                return False
            cur = cur.children[c]
        return cur.endOfWord

    def startsWith(prefix):
        cur = self.root
        for c in prefix:
            if c not in cur.children:
                return False
            cur = cur.children[c]
        return True



좋은 웹페이지 즐겨찾기