美文网首页
KMP算法2018-05-28

KMP算法2018-05-28

作者: Andydufresnegh | 来源:发表于2018-05-28 00:57 被阅读0次

include <stdio.h>

include <stdlib.h>

include <string.h>

/Kmp匹配算法,根据自己的理解所写,可能有待改进; 2018/5/28/
/发现在运行窗口中复制粘贴是一件很麻烦的事情;/

void table_date(char a[],int array[10])
{
int k=0,i=0,j=0,cur = 0;
int length = strlen(a);
for(k=2;k<=length;k++)
{
for(i=1;i<k;i++)
{
for(j=0;j<i;j++)
{
if(a[j] != a[k-i+j]) //k = length - i +j
break;
}
if(i == j)cur = j;
}
array[k-1] = cur;
cur = 0;
}
array[0] = 0;
}
int main()
{
char target_string[1000]; //用于存储目标字符串
char match_string[1000]; //用于存储匹配字符串
int length_target,lenght_match,counter=0;//counter计算匹配个数
int integer_table[100],i=0,k=0;
printf("please input target strings:");
gets(target_string);
printf("please input match strings:");
gets(match_string);
table_date(target_string,integer_table);
length_target = strlen(target_string); //匹配字符串长度
lenght_match = strlen(match_string); //目标字符串长度
for(i=0;i<length_target;i++)
{
while(k<lenght_match)
{
if(target_string[i+k]==match_string[k])k++;
else
{
i+=k-integer_table[k];
break;
}
}
if(k==lenght_match)
counter++; //此处的分号用‘;’用‘,’也正确;
i+=lenght_match-1;
k=0;
}
printf("This match string is appearance %d times;",counter);
return 0;
}

相关文章

  • KMP 专题整理

    KMP 学习记录 kuangbin专题十六——KMP KMP 学习总结 朴素 KMP 算法 拓展 KMP 算法(E...

  • 对KMP算法的一些理解

    最近学到KMP算法,下面讲讲对KMP算法的一些个人理解,希望对大家有帮助! 对于KMP算法的理解: 整个KMP算法...

  • KMP算法2018-05-28

    include include include /...

  • KMP算法文章合集

    字符串的查找:朴素查找算法和KMP算法 暴力匹配算法与KMP算法(串的匹配) 字符串查找算法BF和KMP 字符串匹...

  • 串的模式匹配算法

    KMP算法 算法匹配

  • 问答|KMP算法学习笔记

    问题 目录KMP是什么,做什么用的KMP算法的高效体现在哪如何KMP算法的next数组KMP的代码KMP的时间复杂...

  • KMP算法——寻找子串位置

    KMP算法——寻找子串位置 1、KMP算法简介: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J....

  • 字符串匹配 - KMP算法

    前面我们介绍非常高效的 BM 算法,今天我们介绍另一个非常出名且高效的 KMP 算法。 KMP 算法思想 KMP ...

  • KMP算法及优化

    转载请注明出处: KMP算法及优化 今天看到同学在复习数据结构书上的KMP算法,忽然发觉自己又把KMP算法忘掉了,...

  • KMP算法(字符串匹配问题)

    一、是什么? 注意,是KMP算法,不是MMP哈,我没有骂人。KMP算法是用来做字符串匹配的,除了KMP算法分,还有...

网友评论

      本文标题:KMP算法2018-05-28

      本文链接:https://www.haomeiwen.com/subject/qrqwjftx.html