【kmp算法】模板
void GetFail(char P[],int __next[])//__next[i]表示s[0]~s[i-1]的前缀中,最大长度相等的前后缀是多少
{
__next[0]=-1;
int len=strlen(P);
for(int i=0;i<len;i++)
{
int j=__next[i];
while(j>=0&&P[i]!=P[j])
j=__next[j];
if(j!=-1 && P[i]==P[j])
__next[i+1]=j+1;
else __next[i+1]=0;
}
}
int find(char T[],char P[],int __next[])
{
int n=strlen(T),m=strlen(P);
GetFail(P,__next); int j=0;
for(int i=0;i<n;++i)
{
while(j&&P[j]!=T[i]) j=__next[j];//如果j变成0仍不能满足P[j]==T[i],则只增加i直到出现P[j]==T[i]为止。
if(P[j]==T[i]) ++j;
if(j==m) return i-m+1;
}
return -1;
}
【kmp算法】模板的更多相关文章
- hdu 1711 KMP算法模板题
		
题意:给你两个串,问你第二个串是从第一个串的什么位置開始全然匹配的? kmp裸题,复杂度O(n+m). 当一个字符串以0为起始下标时.next[i]能够描写叙述为"不为自身的最大首尾反复子串 ...
 - KMP算法模板&&扩展
		
很不错的学习链接:https://blog.csdn.net/v_july_v/article/details/7041827 具体思路就看上面的链接就行了,这里只放几个常用的模板 问题描述: 给出字 ...
 - kmp算法模板及理解
		
kmp算法是复杂度为O(n+m)的字符串匹配算法; 首先kmp算法的核心是在模式串中获得next数组,这个数组表示模式串的子串的前缀和后缀相同的最长长度; 这样在匹配的过程中如果指到不匹配的位置,模式 ...
 - 【Luogu P3375】字符串匹配KMP算法模板
		
Luogu P3375 模式串:即题目中的S2所代表的意义 文本串:即题目中的S1所代表的意义 对于字符串匹配,有一种很显然的朴素算法:在S1中枚举起点一位一位匹配,失配之后起点往后移动一位,从头开始 ...
 - POJ 3461 Oulipo KMP算法(模板)
		
题意: 给两组字符串a和b,求a在b中出现的次数 关于KMP: 马拉车算法是处理回文串,而KMP是处理前后缀的相同字符串的最长长度. a | a | b | a | a | f | a | a 数组 ...
 - Kmp 算法模板 C
		
/** * name:KMP * time:2012-11-22 * 字符串快速匹配 */ #include<stdio.h> #include<string.h> typed ...
 - KMP算法模板
		
不懂的话推荐看这篇博客,讲的很清楚 http://blog.csdn.net/v_july_v/article/details/7041827 #include<iostream> #in ...
 - KMP算法———模板
		
做出KMP字符串匹配算法心情也是好好哒,萌萌哒. 感谢黄学长,感谢栋栋! #include<cstdio>#include<string>#include<iostrea ...
 - kmp算法 模板
		
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
 - KMP算法模板(pascal)
		
洛谷P3375: program rrr(input,output); var i,j,lena,lenb:longint; a,b:ansistring; next:..]of longint; b ...
 
随机推荐
- [POI2006] OKR-period of words
			
传送门 - > \(bzoj 1511\) 题目描述 A string is a finite sequence of lower-case (non-capital) letters of t ...
 - 湖南大学第十四届ACM程序设计新生杯 Dandan's lunch
			
Dandan's lunch Description: As everyone knows, there are now n people participating in the competiti ...
 - 上海GDG活动有感
			
本周参加了场上海的GDG活动.本次活动的主办方 先介绍一下: GDG Shanghai 上海GDG(Google开发者社区,以前是GTUG, Google技术用户组) ,众所周知,Google的搜索引 ...
 - Hadoop NameNode元数据相关文件目录解析
			
在<Hadoop NameNode元数据相关文件目录解析>文章中提到NameNode的$dfs.namenode.name.dir/current/文件夹的几个文件: 1 current/ ...
 - nginx,docker反向代理
			
1. [root@javanginx ~]# cat /etc/nginx/nginx.conf user root root;worker_processes 4;error_log /var/lo ...
 - 转:安装成功的nginx如何添加未编译安装模块
			
原已经安装好的nginx,现在需要添加一个未被编译安装的模块 举例说明:安装第三方的ngx_cache_purge模块(用于清除指定URL的缓存) nginx的模块是需要重新编译nginx,而不是像a ...
 - HTTP中的URL长度限制
			
首先,其实http 1.1 协议中对url的长度是不受限制的,协议原文: The HTTP protocol does not place any a priori limit on the leng ...
 - RPC-Thrift(二)
			
TTransport TTransport负责数据的传输,先看类结构图. 阻塞Server使用TServerSocket,它封装了ServerSocket实例,ServerSocket实例监听到客户端 ...
 - All in One到”分布式“迁移过程中的坑
			
为什么“分布式”要加引号? 与其他公司提高并发性能的场景可能不太一样,我们的系统之前是多个模块共用一个tomcat来运行的(All in One),模块有很多,光安装包就几十个.当某个模块或某几个模块 ...
 - bzoj1577 [Usaco2009 Feb]庙会捷运Fair Shuttle
			
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1577 [题解] 我们把每坨奶牛按s排个序. 对于每坨奶牛,如果车上有空位置就塞. 否则,看下 ...