KPM字符串匹配&next矩阵计算
来源:互联网 发布:jni返回byte数组传递 编辑:程序博客网 时间:2024/04/29 05:15
特别申明,本文转载自:http://www.cnblogs.com/c-cloud/p/3224788.html
网上看了很多KMP字符串匹配的博客,这篇是讲的最通俗易通的。下面贴出博客的内容,膜拜。
内容贴出来看不了,直接点链接吧,保证能看明白。下面贴出hihocoder #1015 KMP匹配的AC代码
题目链接:http://hihocoder.com/problemset/problem/1015?sid=1174439
#include<iostream>#include<string>#include<stdio.h>using namespace std;void calNext(string str,int Next[]){ int i,k; Next[0]=0; //cout<<Next[0]; for(k=0,i=1;i<str.length();i++) { while(k>0&&str[k]!=str[i]) k=Next[k-1]; if(str[k]==str[i]) { k++; } Next[i]=k; // cout<<Next[i]; } //cout<<endl;}int main(){ int num,i,k,flag; string p_str,o_str; freopen("input.txt","r",stdin); cin>>num; while(num--) { flag=0; cin>>p_str; cin>>o_str; int *p=new int[p_str.length()]; calNext(p_str,p); for(i=0,k=0;i<o_str.length();i++) { while(k>0&&o_str[i]!=p_str[k]) { k=p[k-1]; } if(o_str[i]==p_str[k]) { k++; } if(k==p_str.length()) { flag++; } } cout<<flag<<endl; delete [] p; } return 0;}
代码大致与转载博客里提供的代码相同,针对题目要求,做了些微修改。KMP还是略显复杂,理解起来有困难。
阅读全文
0 0
- KPM字符串匹配&next矩阵计算
- KMP算法计算next数组 匹配字符串
- 字符串匹配算法KPM实现-JAVA
- 字符串匹配问题——next数组计算
- 字符串匹配度计算
- 字符串近似匹配计算
- KPM
- KMP快速字符串匹配 (next数组优化)
- KMP字符串匹配,next数组的求解
- KMP算法next数组计算--字符串方式
- 计算匹配字符串的个数
- 字符串匹配KMP算法中Next[]数组求法
- 字符串匹配KMP算法中Next[]数组求法
- 字符串匹配之KMP算法(续)---还原next数组
- 字符串匹配——KMP算法中的next数组理解
- 字符串匹配KMP算法中Next[]数组求法
- 【博客地址】:KMP字符串匹配算法与next数组
- kmp算法(字符串匹配 next应用 hdu题目集合)
- 小程序getPhoneNumber
- 删除远程仓库上提交的文件夹
- mui中打开新页面时右滑返回和打开动画
- 如何判断undefined,ps:某些时候我们需要对undefined进行判断处理
- hibernate的懒加载代理模式
- KPM字符串匹配&next矩阵计算
- Linux svn服务器的存放路径详解
- the first day in csdn
- Animation与Animator(Animation调用动画报空问题)
- 一些自己收集到的教程免费发布出来
- springcloud微服务实战:Eureka+Zuul+Ribbon+Hystrix+SpringConfig
- taskctl条件控制策略中时间窗口注意事项
- 理解JVM(2) 栈内存,方法区,堆内存
- Codeforces Round #434 (Div. 2)