2012年7月4日
摘要: 与KMP算法一样,shift-and 和shift-or算法都是基于前缀搜索的字符串匹配算法。但是该算法的思想比KMP简单很多,它维护一个字符串的集合,集合中的每个字符串既是模式串P的前缀,同时也是已读入文本的后缀。每读入一个新的文本字符,该算法即用位并行的方法更新集合。该集合用一个位掩码D=dm......d1来表示。先说shift-and算法。D的第j位被置为1(称为D的第j位是活动的)当且仅当p1...pj是t1....tj的后缀。当dm是活动时,就表示有一个成功的匹配。当读入下一个字符ti+1时,需要重新计算新的位掩码D’。D’的第j+1位是活动的当且仅当D的第j位是活动的(即p1.. 阅读全文
posted @ 2012-07-04 16:05 unhealthy 阅读(1572) 评论(0) 推荐(0) 编辑