C 實現敏感詞過濾 2 Trie類的實現

2021-06-09 18:33:56 字數 1423 閱讀 1724

三.trie類的定義

trie.h:

#include

#include

#include

"trienode.h"

class

trie  else  else {

(&(___it->second))));

return ___result;

std::string

trie::getkeywords() {

std::string ___result;

for (trienode::_triemapiterator ___it = __emptyroot.__map.begin();

___it != __emptyroot.__map.end(); ++___it) {

return ___result;

std::string

trie::getkeywords(const std::string& character, const

trienode* parent) {

std::string ___result;

for (trienode::_triemapiterator ___it = parent->__map.begin();

___it != parent->__map.end(); ++___it) {

// last character

if (parent->__map.size() == 0) {

__size++;

return ___result;

說明:1.

trienode* trie::insert(trienode* parent, std::string& keyword)即在建立trienode

樹時,以

parent

為根節點建立,一開始

parent

為__emptyroot,

然後把keyword

按照規則新增到樹中,假設一開始

__emptyroot

為空,keyword

為hello

,則會以

hello

為一條分支建立成為一顆樹枝

h->e->l->l->o,

此後,若想再新增

hero

,由於hero

與hello

的前兩個字元相同,則會在

h->e->l->l->o

的基礎上,從字母

e開始新生長出一顆分支,即

h->e->r->o,

這兩顆分支共用

h->e

2.__pace即與編碼方式有關,utf16

編碼,則

__pace為2

,utf8

是變長編碼,不再詳述.

本文參考自michael寫的文章,具體可參考:

C 敏感詞過濾實現方法

這兩天突然想到了敏感詞過濾 就結合網上找到的資料自己寫了乙個,髒字數量700 效率不是很高 測試在110多kb的情況下比replace快 3 4倍 測試結果圖 單位 秒 如下 system.text.stringbuilder sb new system.text.stringbuilder tex...

mysql 敏感詞 PHP實現的敏感詞過濾方法示例

1 敏感詞過濾方法 todo 敏感詞過濾,返回結果 param array list 定義敏感詞一維陣列 param string string 要過濾的內容 return string log 處理結果 function sensitive list,string if count 0 else ...

iOS實現敏感詞的過濾

1.我認為最關鍵的一點 懶。奧!不對!應該是太懶,其實有很多問題都可以通過部落格的形式記錄下來,一方面可以給也遇到該類問題的同伴一種幫助,也可以加深一下自己對一些問題的深入了解和認識。但一直被自己內心的那種慵懶所阻礙著!2.文學水平很差,有的時候在語言的表述上邏輯不夠明了,非常的混亂。也不會使用什麼...