基于fortran的算法系列--6.字符串匹配
注:部分内容来自网络,包括代码逻辑字符串匹配:有内部函数的吧。不过欣赏实现过程也很享受。
一、bf算法:简单粗暴的方式,从前向后一一比较,若不同,则后移模式串。
二.bm算法中的坏字符规则思想:坏字符是指不匹配的主要字符,对应于主串中
(1)模式串与主串从后向前匹配
(2)发现坏字符后,如果坏字符不存在于模式串中:将模式串的头字符与坏字符后一位对齐
(3)发现坏字符后,如果坏字符不存在于模式串中:将模式串中 与坏字符相同的字符 最后一次出现的位置与坏字符对齐。
三.bm算法中的好后缀规则思想:好后缀是指匹配的主要字符子串,对应于主串中
(1)好后缀为模式串最后一个字符子串与主串对应的字符串,模式串与主串从后向前匹配
(2)当出现坏字符时,若好后缀不存在于模式串中: 将模式串的头字符与好后缀后一位对齐,此处要注意挪动不能过头,要考虑 好后缀尾部与模式串头部相同的情形。
(3)当出现坏字符时,若好后缀存在于模式串中: 将模式串中 与好后缀相同的子串 最后一次出现的位置与好后缀对齐。
四、kmp算法
有些复杂,不做介绍,可移步百度,其实对于程序员来说,代码才是最容易看懂的,文字介绍反而会绕晕。直接上代码:
谢谢分享 谢谢分享 感谢楼主 如果楼主能每天都分享一些,那就更好了 大佬无敌 感谢楼主 支持一波~~ 不知道说啥,给楼主顶一下吧! 谢谢分享