Golang | Leetcode Golang题解之第208题实现Trie前缀树
题目:
题解:
type Trie struct { children [26]*Trie isEnd bool } func Constructor() Trie { return Trie{} } func (t *Trie) Insert(word string) { node := t for _, ch := range word { ch -= 'a' if node.children[ch] == nil { node.children[ch] = &Trie{} } node = node.children[ch] } node.isEnd = true } func (t *Trie) SearchPrefix(prefix string) *Trie { node := t for _, ch := range prefix { ch -= 'a' if node.children[ch] == nil { return nil } node = node.children[ch] } return node } func (t *Trie) Search(word string) bool { node := t.SearchPrefix(word) return node != nil && node.isEnd } func (t *Trie) StartsWith(prefix string) bool { return t.SearchPrefix(prefix) != nil }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。