C++ 实现容器时,写 iterator 很烦
实现一个 C++ 容器时,都要提供 iterator, const_iterator, 一般情况下 iterator 和 const_iterator 几乎完全一样,不一样的地方仅在于: 继续阅读
实现一个 C++ 容器时,都要提供 iterator, const_iterator, 一般情况下 iterator 和 const_iterator 几乎完全一样,不一样的地方仅在于: 继续阅读
任意两个字符串 s, t,如果能找到一种替换方式,对 t 中的每个字符 a ,用 s 中的一个字符 b 替换,最后得到一个字符串 t’,如果 t’ 与 s 相同,用符号计作 s->t;如果 s->t 且 t->s,我们称 s 与 t 等价。
例如,下面 4 个字符串就是(互相)等价的: 继续阅读
一直以来,自动机的创建程序(adfa_build/dawg_build/kvbin_build 等)性能虽然尚可,以最常用的 adfa_build 来说,根据不同的输入文本,平均吞度量能达到每秒钟 5~20M 。这个速度看上去还不错,至少比竞品要快了许多,但是,如果有非常大的数据 继续阅读
简单,优美,的代码,你能看出来哪些是二叉树的后序、前序、中序遍历吗?你还知道二叉树有什么遍历方法? 继续阅读
前段时间实现了基于 Succinct Data Structure 的自动机,这种自动机(内存)存储方式将状态转移的 label 单独存储起来,从而,查找 label 就是一个在 byte 数组中查找 byte 的操作,并且,绝大多数情况下,需要查找的这个 byte 数组都非常短(状态的平均转移(label)数一般情况下大约是 2 )。 继续阅读