单选题 在字符串的KMP模式匹配算法中,需要求解模式串p的next函数值,其定义如下所示。若模式串p为“aaabaaa”,则其next函数值为______。
【正确答案】 A
【答案解析】[解析] j=1时,next[1]=0。j=2时,不存在k,满足1<k<j,则next[2]=1。j=3时,k只能取2,等式的左边为p 1 ,等式的右边为p 2 ,p 1 =p =a,next[3]=2。j=4时,k可以取2和3,k取2的时候,左边为p 1 ,右边为p 3 ,p 1 =p 3 =a;k取3时,左边为p 1 p 2 ,右边为p 2 p 3 ,p 1 p 2 =p 2 p 3 =aa;k取较大值3,因此next[4]=3。j=5时,k可以取2、3、2,k取2的时候,左边为p 1 =a,右边为p 4 =b,左右两边不等;k取3的时候,左边为p 1 p 2 =aa,右边为p 3 p 4 =ab,左右两边不等;k取4的时候,左边为p 1 p 2 p 3 =aaa,右边为p 2 p 3 p 4 =aaba,左右两边不等,因此next[5]=1。至此,可以判断正确的答案为A。