PHP 生成 Trie 树
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 生成 Trie 树相关的知识,希望对你有一定的参考价值。
将所有敏感词生成 Trie 树结构,便于做敏感词检测,生成代码如下
class TrieNode
{
private static $TrieTree;
public function __construct()
{
static::$TrieTree = [];
}
public function insert($sensWords): TrieNode
{
$words = preg_split(‘//u‘, $sensWords, -1, PREG_SPLIT_NO_EMPTY);
$_tree = &static::$TrieTree;
foreach ($words as $key => $_word) {
if (!isset($_tree[$_word])) {
$_tree[$_word] = [
‘isEnd‘ => !isset($words[$key + 1]),
‘child‘ => []
];
}
$_tree = &$_tree[$_word][‘child‘];
}
return $this;
}
public function getTree()
{
return static::$TrieTree;
}
}
$treeNode = (new TrieNode)->insert(‘CNM‘)->insert(‘MLGB‘)->insert(‘WRNM‘)->getTree();
echo json_encode($treeNode,JSON_UNESCAPED_UNICODE);
以上是关于PHP 生成 Trie 树的主要内容,如果未能解决你的问题,请参考以下文章
51Nod1601 完全图的最小生成树计数 Trie Pruffer编码