0001 void buildBC(char* P, int m, int* bc) { //构造BC表:O(s+m) 0002 int s = 128; //以ASCII字符集为例 0003 for (int k = 0; k < s; k++) bc[k] = -1; //首先假设所有字符均未在P中出现 0004 for (int j = 0; j < m; j++) //自前向后地扫描串P(画家算法) 0005 bc[P[j]] = j; //将P[j]对应的BC项更新为j,最终保留的是最大项(最靠后者) 0006 } //buildBC