算法导论-KMP
来源:互联网 发布:swfobject.js 官网 编辑:程序博客网 时间:2024/06/07 04:44
本代码为算法导论一书中伪代码的实现
刚刚测试,有点问题,日后修改
#include<iostream>#include<cstdio>#include<cstring>using namespace std;long long pai[1000000];char T[1000000];char P[1000000];unsigned long n;unsigned long m;void KMP(){ long long q=0; for(int i=0;i<n;i++) { while(q>0 && T[i]!=P[q]) q=pai[q-1]+1; if(T[i]==P[q])//T[i]和P[q]是当前比较对象 q=q+1; if(q==m) cout<<"第一个匹配位置是:"<<i-m<<endl; }}void PAI(){ pai[0]=0; long long k=0; for(int q=1;q<m;q++)//pai[q]表示Tq后缀与前缀匹配的最大长度 { while(k>0 && P[q]!=P[k]) k=pai[k-1]+1; if(P[q] == P[k]) { k=k+1; } pai[q]=k; }}int main(){ cout<<"请输入文本字符串"<<endl; scanf("%s",T); cout<<"请输入模式串"<<endl; scanf("%s",P); n=strlen(T); m=strlen(P); PAI(); //for(int i=0;i<m;i++) // cout<<pai[i]<<" "; KMP(); return 0;}
0 0
- 算法导论-KMP模版
- 算法导论—KMP
- 算法导论-KMP
- KMP算法(《算法导论》)
- 算法导论笔记,KMP算法
- 算法导论 KMP字符串匹配
- 算法导论KMP匹配字符串
- [算法导论] BF算法与KMP算法
- 算法导论(九)kmp匹配算法
- kmp算法实现-算法导论C语言版
- KMP字符串匹配算法--算法导论示例zz
- 算法导论-第32章- 字符串匹配 - KMP算法
- Java实现算法导论中KMP字符串匹配算法
- KMP算法(未优化版本,算法导论原版)
- KMP字符串匹配(按照《算法导论》伪代码实现)
- 算法导论第32章——字符串匹配问题(KMP算法)
- 算法导论-第32章-字符串匹配:Knuth-Morris-Pratt(KMP)算法C++实现
- 算法导论 第32章 详解字符串的匹配,自动机,KMP算法
- Java数组操作的疑惑(这篇错误,后来才知道是有static修饰的结果)
- Android:我遇到的OOM以及解决方法
- spring 源码如何导入到eclipse
- Android的5种布局
- UILabel 中文本的多样式显示
- 算法导论-KMP
- rehctiwSbluB.319
- Android批量加载网络图片存在的问题及简单实现
- 定义一个Activity类型的dialog
- Android广告轮播图添加标题及点击事件
- 堆排序
- xtrabackup原理
- Android中的电话通讯机制
- 查看显卡的计算能力