考试资讯

咨询热线8:00-24:00 400-0999-680

首页 考试资讯考研专业课 2022计算机考研408知识点:模式匹配算法

2022计算机考研408知识点:模式匹配算法

时间:2021-05-06 15:15:48 编辑:leichenchen

      3至6月是考研专业课基础知识牢固的关键期!下面,小编为帮助2022计算机考研考生们,快速掌握重难点知识。特意分享——2022计算机考研408知识点:模式匹配算法,供考生参考。

2022计算机考研408知识点:模式匹配算法

一、算法目的:

确定主串中所含子串第一次出现的位置(定位)

定位问题称为串的模式匹配,典型函数为Index(S,T,pos)

BF算法的实现—即编写Index(S, T, pos)函数

二、BF算法设计思想:

将主串S的第pos个字符和模式T的第1个字符比较,

若相等,继续逐个比较后续字符;

若不等,从主串S的下一字符(pos+1)起,重新与T第一个字符比较。

直到主串S的一个连续子串字符序列与模式T相等。返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。

否则,匹配失败,返回值 0。

Int Index_BP(SString S, SString T, int pos)

{ //返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0.

// 其中,T非空,1≤pos≤StrLength(S)

i=pos; j=1;

while ( i<=S[0] && j<=T[0] ) //如果i,j二指针在正常长度范围,

{

if (S[i] = = T[j] ) {++i, ++j; } //则继续比较后续字符

else {i=i-j+2; j=1;} //若不相等,指针后退重新开始匹配

}

if(j>T[0]) return i-T[0]; //T子串指针j正常到尾,说明匹配成功, else return 0; //否则属于i>S[0]情况,i先到尾就不正常

} //Index_BP

      以上是“2022计算机考研408知识点:模式匹配算法”,希望对计算机考研学子们在复习上面有所帮助!预祝2022考研直达彼岸!

推荐阅读:

2022计算机考研408知识点汇总

扫一扫

进考研专属交流群 获取更多考研干货资料

优先参加最新福利活动

我要吐槽

    • 文都考研课代表

    研友互动

    199管理类联考
      微信交流群

    396经济类联考
      微信交流群