月度归档: 2016 年 8 月

  • Linux 安装 memcache

    下载 memcache

    wget http://memcached.org/latest

    如果没有安装 wget 命令,可以先通过 yum 命令安装 wget 命令

    yum install wget

    解压并安装

    tar -zxvf latest
    cd memcached-1.x.x
    ./configure && make && make test && sudo make install
    

    memcache 依赖 libevent,安装中如果出现

    for libevent directory… configure: error: libevent is required.

    系统会默认安装 libevent,memcache 找不到是因为没有找到相应头文件

    可以通过 yum 安装 libevent-devel,安装 libevent 相关开发使用的头文件

    yum install libevent-devel

    再次执行

    ./configure && make && make test && sudo make install

    此时可能出现错误

    prove ./t
    make: prove: Command not found
    make: *** [test] Error 127

    这是执行 make test 命令抛出的错误,可以忽略,重新执行

    sudo make install

    安装完成

    当以 root 身份安装,可以不使用 sudo 获取权限

  • JavaScript 获取两个字符串最长公共子串 (Longest Common Subsequence)

    获取两个字符串 a 和 b 的最长公共子串,时间复杂度 O(mn),空间复杂度 O(n),其中 a 的字符串长度为 m,b 的字符串长度为 n。

    function lcs(a, b) {
        var ai, al = a.length,
            bi, bl = b.length - 1, maxBi,
            max = 0, val,
            row = [],
            ret = [];
    
        for (ai = 0; ai < al; ai++) {
            for (bi = bl; bi > -1; bi--) {
                val = a[ai] == b[bi] ? 1 : 0;
                if (val) {
                    if (row[bi - 1]) {
                        val += row[bi - 1];
                    }
                    if (val > max) {
                        max = val;
                        maxBi = bi;
                    }
                }
                row[bi] = val;
            }
        }
    
        for (; max > 0; max--, maxBi--) {
            ret.unshift(b[maxBi]);
        }
    
        return ret.join('');
    }