[转载]各种字符串Hash函数比较

由于TT对于长文本做Key的存储不太给力(或者是数据分布的问题?)

总之可能要用Hash算法了,MD5不在考虑之列,因为太长。

准备用某种UINT64的Hash算法,然后转为62进制编码,你懂得……

以下内容为转载:

转载自:
各种字符串Hash函数比较

常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生 影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到[......]

继续阅读

Python中多字符的逐一替换:string.translate()

有的时候,我们需要对多个字符进行逐一替换,一个应用场景就是去掉文章中所有的换行。

而用正则神马的有点大才小用,而一个一个replace也很麻烦,translate提供了这样的功能。
>>> str = " a\tb\rc\n "
>>> print str
ca b

#创建翻译(替换)表,并替换,搞定
>>> import string
>>> tb = string.maketrans("\r\n\t[......]

继续阅读

使用C++和zlib解压缩.gz文件并读入内存

一般我们自己用.gz文件的时候会先
gzip xxx.gz
然后就地解压缩生成文件,如果本身就是要原文件还行,但如果再程序需要在内存中再处理,就不OK了。
因为会浪费两次I/O,特别是文件特别大或者特别多的时候。
因此,使用zlib将.gz文件直接解压并读取到内存,就很重要了。
#include <zlib.h>
#include <iostream>
#include <string>

#define GZ_BUF_SIZE 104857[......]

继续阅读