背景
平时我们在逛贴吧、牛客网的时候,我们经常可以看到一些形如 “***”的符号,通过上下文,我们也可以很容易猜到这些词原来是骂人的话,只是被系统和谐了。那么这是如何实现的呢?作为普通人,我们最先想到的一种办法就是把所有敏感串存入一个列表中,然后用户每发一条内容后台就把该内容与敏感串列表的每一项进行匹配,然后把匹配的字符进行和谐。显然这样的效率是很低的。非常影响性能,那么我们有没有其他的算法呢?这就是我这篇博文打算介绍的。
原理讲解
1.首先建立个敏感词前缀树
根节点为空
2.准备好待处理字符串: 哈哈大王八子大猪蹄子哦 ,声明三个指针,分别指向前缀树的根节点以及待处理字符串的开始字符
3.position指向的字符与根节点的所有子节点进行匹配,不匹配,position 和 begin分别指向待处理字符串的下一个字符,tempNode依旧指向 根节点
4.依旧不匹配,position 和begin继续向前走一位,指向“