0001 // 子串指纹快速更新算法 0002 void updateHash ( HashCode& hashT, char* T, size_t m, size_t k, HashCode Dm ) { 0003 hashT = ( hashT - DIGIT ( T, k - 1 ) * Dm ) % M; //在前一指纹基础上,去除首位T[k - 1] 0004 hashT = ( hashT * R + DIGIT ( T, k + m - 1 ) ) % M; //添加末位T[k + m - 1] 0005 if ( 0 > hashT ) hashT += M; //确保散列码落在合法区间内 0006 }