发掘双数组Trie (Double Array Trie)的能力

阅读更多关于《发掘双数组Trie (Double Array Trie)的能力》

描述 Double Array Trie 的文章有很多,我在这里从另一个视角来讲 Double Array Trie。首先,是 base 和 check 的更深层含义,然后再详细说一下由此引申出来的问题。 继续阅读

AC 自动机的实现

阅读更多关于《AC 自动机的实现》

关于 AC 自动机,有太多的文章在讲述它的原理,讲述者借此来展示自己的算法能力。但其实AC自动机的原理很简单,真正困难的地方在于一个高效的实现!对于任何一个基础算法,一个好的实现都要尽量满足:

* 速度快 这几点排名不分先后
* 内存小
* 接口灵活、通用
* 使用简单、易上手

继续阅读

奇简软件名字的故事

阅读更多关于《奇简软件名字的故事》

奇简软件,“奇”字本身有“奇妙”、“奇特”,还有“非常”的意思,“简”字有“简单”、“简洁”,另外,还有“竹简”,也就是“书”、“知识”的意思,放在一起,有多重含义。

另外,“奇简”谐音“旗舰”,“那艘最顶级的船”就是圣经中的“诺亚方舟”了,英文名: Noah’s Ark ,可以简称 nark。 继续阅读

多正则表达式匹配的应用

阅读更多关于《多正则表达式匹配的应用》

搜索引擎 Query 分析

Query 意图分析

定义一批规则(正则表达式),每条规则表达一种搜索的意图,例如问路、吃饭、看病、查找ip、查找电话、小说、软件下载…… 继续阅读