添加 'trie.go'
Signed-off-by: loser <1711788888@qq.com>
This commit is contained in:
parent
184886d2c8
commit
60c0098cfb
32
trie.go
Normal file
32
trie.go
Normal file
@ -0,0 +1,32 @@
|
||||
package flashtext
|
||||
|
||||
type Node struct {
|
||||
children map[rune]*Node // 使用 map 存储叶子节点,key:'char' ,value: *Node
|
||||
exist map[int]struct{} // 关键词节点是一个完整的匹配词,记录其长度
|
||||
failure *Node // 记录失败指针
|
||||
}
|
||||
|
||||
func newNode() *Node {
|
||||
return &Node{
|
||||
children: make(map[rune]*Node),
|
||||
exist: make(map[int]struct{}),
|
||||
}
|
||||
}
|
||||
|
||||
type Match struct {
|
||||
match string
|
||||
start int
|
||||
end int
|
||||
}
|
||||
|
||||
func (m *Match) MatchString() string {
|
||||
return m.match
|
||||
}
|
||||
|
||||
func (m *Match) Start() int {
|
||||
return m.start
|
||||
}
|
||||
|
||||
func (m *Match) End() int {
|
||||
return m.end
|
||||
}
|
Loading…
Reference in New Issue
Block a user