首页 > 试题广场 >

在一个虚拟的数据结构迷宫里,一位年轻的数据结构探险家正在探索

[单选题]
在一个虚拟的数据结构迷宫里,一位年轻的数据结构探险家正在探索KMP算法的奥秘。已知字符串S='ydysdssydddysysddssy',模式串t='ydydyy',在第一次出现“失配”(s[i]≠t[j])时,i=j=3。下次开始匹配时,i和j的值分别是()
  • i=5, j=0
  • i=3, j=1
  • i=3, j=2
  • i=5, j=3
在KMP算法中,当失配发生时,模式串的下一个匹配位置由**部分匹配表(PMT,或最长前缀后缀匹配长度数组)**决定。已知第一次失配时  i=j=3 (假设索引从0开始),此时需计算模式串  t  的前  j  个字符(即  t[0..2] )的最长相等前缀后缀长度,以确定下次匹配的  j  值,而  i  值保持不变(不回溯)。 步骤分析: 1. 模式串  t  的前3个字符( j=3 ,索引0~2)为  'ydy'  - 前缀: 'y' 、 'yd'  - 后缀: 'y' 、 'dy'  - 最长相等前缀后缀长度为 1( 'y' )。 2. 失配后, j  回溯到最长前缀后缀长度位置 - 新的  j  值为 1(即  PMT[3-1] = PMT[2] = 1 )。 -  i  值保持不变(仍为3),继续从当前位置匹配。 答案: 下次开始匹配时, i=3 , j=1 。
发表于 2025-05-08 09:58:03 回复(0)