阅读背景:

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);class Trie



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: