h1235 发表于 2020-6-27 19:25

基于fortran的算法系列--6.字符串匹配

注:部分内容来自网络,包括代码逻辑
字符串匹配:有内部函数的吧。不过欣赏实现过程也很享受。
一、bf算法:简单粗暴的方式,从前向后一一比较,若不同,则后移模式串。
二.bm算法中的坏字符规则思想:坏字符是指不匹配的主要字符,对应于主串中
(1)模式串与主串从后向前匹配
(2)发现坏字符后,如果坏字符不存在于模式串中:将模式串的头字符与坏字符后一位对齐
(3)发现坏字符后,如果坏字符不存在于模式串中:将模式串中 与坏字符相同的字符 最后一次出现的位置与坏字符对齐。
三.bm算法中的好后缀规则思想:好后缀是指匹配的主要字符子串,对应于主串中
(1)好后缀为模式串最后一个字符子串与主串对应的字符串,模式串与主串从后向前匹配
(2)当出现坏字符时,若好后缀不存在于模式串中: 将模式串的头字符与好后缀后一位对齐,此处要注意挪动不能过头,要考虑 好后缀尾部与模式串头部相同的情形。
(3)当出现坏字符时,若好后缀存在于模式串中: 将模式串中 与好后缀相同的子串 最后一次出现的位置与好后缀对齐。


四、kmp算法
有些复杂,不做介绍,可移步百度,其实对于程序员来说,代码才是最容易看懂的,文字介绍反而会绕晕。直接上代码:




uYE05 发表于 2022-2-27 10:37

谢谢分享

aVksWF94 发表于 2022-3-1 01:14

谢谢分享

wtOEh5 发表于 2022-3-17 17:28

感谢楼主

txMC4258 发表于 2022-3-17 17:34

如果楼主能每天都分享一些,那就更好了

IPGVh84539 发表于 2022-3-20 12:03

大佬无敌

Idiptygh194 发表于 2022-3-27 18:44

感谢楼主

VXBlSUP138 发表于 2022-4-1 14:10

支持一波~~

KiaIVZW 发表于 2022-4-10 15:35

不知道说啥,给楼主顶一下吧!

mfleB 发表于 2022-4-10 15:36

谢谢分享
页: [1] 2 3 4 5 6
查看完整版本: 基于fortran的算法系列--6.字符串匹配