對濾詞表中的每個單詞做一次hash,以hash雜湊值作為key,單詞內容作為value
2.1起始符表
將濾詞表中每個單詞的起始字元構建成乙個表,作為起始符表(startlist)
2.2結束符表
將濾詞表中每個單詞的結束字元構建成乙個表,作為結束符表(endlist)
1.1)如果匹配到起始字元,搜尋ai的下乙個字元ai+1,檢視ai+1是否存在endlist
1.1.1.1)如果filtermap中查詢到了這n個字元,則清除或記錄敏感詞後從ai+2繼續重複1)
1.1.1.2)如果filtermap沒有查詢到這n個字元,則從ai+1個字元開始重複1)
1.1.2)如果ai+1不存在於endlist,則從ai+2開始重複1.1)
例子:濾詞表"****" "damn"
濾詞表單詞最大長度maxlenth = 4;
filtermap(假設hash值如下)
"1" => "****"
"2" => "damn"
startlist
endlist
首先查詢"****fucok"的第乙個字元f
在startlist中找到了f,然後查詢u,不存在於endlist,再查詢c,不存在於endlist,再查詢k,存在於endlist,就可以對****進行hash然後在filtermap中匹配了,匹配到後清除****,然後從k的下乙個字元f再次開始匹配,發現f在startlist中,重複上述操作,找到最後乙個字元k,發現長度已經超過maxlenth,匹配結束
最後濾詞結果****fucok;
關於學習的一點想法
上了十幾年學,才發現自己很多本質的問題從來沒有想過。人類在發展過程中會遇到各種各樣的問題,面對各種各樣的問題,人們提出了各種解決方法。但是如果不用文字記錄下來,讓更多的人看到,實現知識的傳播,那麼未來的人類面對相同的問題就會一臉懵逼,然後花很多重複時間解決乙個解決過的問題。所以人類把各種問題的解決方...
關於CTFT DTFT DFT的一點想法
關於ctft dtft dft dfs等概念的理解一直是模模糊糊 似是而非的,近日忽然就咂摸到了一點滋味,簡單記錄一下,正確性不敢保證。考慮到計算機只能處理時域離散 頻域離散的訊號,因此時域連續或頻域連續的訊號,計算機無法直接處理 這是大前提 因此需要對連續的訊號進行離散處理,這就需要用到衝激串了 ...
關於工作的一點想法
最近基於spring cloud在做乙個支付閘道器的功能。基於 兩 個服務 格式化服務與子支付服務。格式化服務 接受所以平台的請求,提供公共介面,實現在內部呼叫不同平台的子服務介面。子支付服務 針對不同的支付平台提供相關的支付功能。因為剛剛起步,所以就以剛接觸的第乙個子服務為基礎建立了格式化服務。然...