在字符串的KMP模式匹配算法中,需先求解模式串的next函数值,其定义如下式所示,j表示模式串中字符的序号(从1开始)。若模式串p为"abaac",则其next函数值为 ( ) 。

题目
在字符串的KMP模式匹配算法中,需先求解模式串的next函数值,其定义如下式所示,j表示模式串中字符的序号(从1开始)。若模式串p为"abaac",则其next函数值为 ( ) 。

A.01234
B.01122
C.01211
D.01111
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

●在字符串的模式匹配过程中,如果模式串的每个字符依次和主事中一个连续的字符序列相等,则称为匹配成功。如果不能在主串中找到与模式串相同的子串,则称为匹配失败。在布鲁特—福斯模式匹配算法(朴素的或基本的模式匹配)中,若主串和模式串的长度分别为n和m(且n远大于m),且恰好在主串末尾的m个字符处匹配成功,则在上述的模式匹配过程中,字符的比较次数最多为(57)。

(57) A. n*m

B. (n-m+1)*m

C. (n-m-1)*m

D. (n-m)*n


正确答案:B

第2题:

求字符串T在字符串S中首次出现的位置的操作称为()。

A、串的模式匹配

B、求子串

C、求串的长度

D、串的连接


参考答案:A

第3题:

正则表达式模块re的match()方法是从字符串的开始匹配特定模式,而search()方法是在整个字符串中寻找模式,这两个方法如果匹配成功则返回match对象,匹配失败则返回空值None。

此题为判断题(对,错)。


正确答案:√

第4题:

●在KMP模式匹配算法中,需要求解模式串p的next函数值,其定义如下(其中,j为模式串中字符的序号)。对于模式串“abaabaca”,其next函数值序列为(57)。

(57)

A. 01111111

B.01122341

C.01234567

D.01122334


正确答案:B

第5题:

已知模式串t=‘abcaabbabcab’写出用KMP法求得的每个字符对应的next和nextval函数值。


参考答案:
  模式串t的next和nextval值如下:
  

第6题:

已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”。采用KMP算法进行匹配,第一次出现“失配”(s[i]≠t[j])时,i=j=5,则下次开始匹配时,i和j的值分别是()。

A.i=1,j=0

B.i=5,j=0

C.i=5,j=2

D.i=6,j=2


正确答案:C

第7题:

设目标为t=“abcaabbabcabaacbacba”,模式为p=“abcabaa” ① 计算模式p的naxtval函数值; ② 不写出算法,只画出利用KMP算法进行模式匹配时每一趟的匹配过程。


参考答案:
  ① p的nextval函数值为0110132。(p的next函数值为0111232)。
  ② 利用KMP(改进的nextval)算法,每趟匹配过程如下:
  第一趟匹配: abcaabbabcabaacbacba
  abcab(i=5,j=5)
  第二趟匹配: abcaabbabcabaacbacba
  abc(i=7,j=3)
  第三趟匹配: abcaabbabcabaacbacba
  a(i=7,j=1)
  第四趟匹配: abcaabbabcabaac bacba
  (成功) abcabaa(i=15,j=8)

第8题:

在KMP算法中,已知模式串为ADABCADADA,请写出模式串的next数组值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4


正确答案:A

第9题:

当运用改进的模式匹配算法时,模式串P='ABAABCAC'的next函数值序列为(41)。

A.1222312

B.1122312

C.1122212

D.122312


正确答案:B
解析:改进的模式匹配算法的不同之处在于,每当匹配失效时,不需要回溯主串的指针,而是复用已经得到的“部分匹配”的结果,将模式串向后“滑动”尽可能远的距离,再继续进行比较。算法执行时就依据模式串的next函数值实现子串的滑动。next函数定义如下:依据此函数定义即可算得next函数值序列为01122312。

第10题:

求字符串T在字符串S中首次出现的位置称为(42)。

A.串的模式匹配

B.求子串

C.求串的长度

D.串的连接


正确答案:A

更多相关问题