在字符串的模式匹配过程中,如果模式串的每个字符依次和主事中一个连续的字符序列相等

练习题库2022-08-02  43

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

选项 A.n*m
B.(n-m+1)*m
C.(n-m-1)*m
D.(n-m)*n

答案 B

解析 本题主要考查字符串的匹配。在本题的描述中,告诉我们是在主串末尾的m个字符处匹配成功,那么在这之前,从左到右依次匹配了n-m次,且都失败了,最坏的情况,就是每次匹配都是匹配到最后一个字符不符合,因此每次匹配的比较次数就是子串的长度,即m。而匹配成功时,一共也比较了m次。所以字符的比较次数最多为(n-m+1)*m次。
转载请注明原文地址:https://tihaiku.com/congyezige/2410083.html

最新回复(0)