KMP算法以及简单应用(查找单词)

本文介绍了KMP算法的基本原理,并通过一个查找单词的应用实例详细阐述其使用方法。首先输入一个目标字符串和要搜索的子字符串,然后通过KMP算法计算匹配次数及位置。代码示例中展示了算法的实现过程,包括KMP_Next函数和Count_Word函数,帮助读者深入理解KMP算法。
摘要由CSDN通过智能技术生成

上学期在重新学数据结构时,看到匹配算法时,看不懂,然后没时间去研究它,暂时放了下来,早段时间重新研究了 经典的KMP算法,终于搞懂了,自己写了一个kmp算法,并利用它进行了简单的应用,查找单词;例如

Input A string as the Object string..
sdfgdsgsdgr
Input A string as the search string..
sd
Total Count Is ..2
0
7
Press any key to continue

源文件cpp文件:

#include"NewKmp.h"

void main()
{
/* string str = "aaaaaaa15";
 int next[10];
 KMP_Next(str,next);

 for(int i = 0;i<str.size();i++)
 {
  cout<<(str.c_str())[i];
 }
 cout<<endl;
  for(i = 0;i<str.size();i++)
 {
  cout<<next[i];
 }
 cout<<endl;*/

 string S,P;
 int Count;
 vector<int> Vec_Pos;
 cout<<"Input A string as the Object string.."<<endl;
 cin>>S;
 cout<<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值