Advertisement

数据结构字符串 模式匹配的理解并实施 BF和KMP算法 用C和C++实现

阅读量:

#笔记整理
如不熟悉字符串(string)的概念,请访问:
串(string)的定义与表示 进行查看

串的模式匹配算法

定义用于确定子字符串位置的函数为 Index(S,P,pos)
该操作一般称为字符串的模式匹配(其中子字符串P被称作模式字符串)。

算法1:朴素模式匹配算法/简单匹配算法(Brute-Force算法,简称BF算法)

从目标主串s=“s₁s₂…sₙ”的第一个位置出发与模式主串p=“p₁p₂…pₘ”的第一位元素展开对比关系:当二者相同,则依次向后逐个对比后续对应位置;若有不一致现象,则需切换到目标主串s的下一个元素位置并重新启动与模式主串p的第一位元素对比过程。
依此类推地讲,在目标字符串s中找到第i个位置后,在其后每一位都与模式字符串p对应的相应位点上实现一致匹配,则算法判定匹配成功并返回当前索引值i;如果在任何一位发现不一致现象,则判定为无匹配结果并返回数值0。

实现代码:

复制代码
    // ——————————串的定长顺序存储表示————————————————
    #define MAXSTRLEN 255     //最大串长
    typedef char SString[MAXSTRLEN+1];
    
    // C语言实现

全部评论 (0)

还没有任何评论哟~