题目链接:点击打开链接
题意:
给定一个字符串str 求字符串str的
循环节个数为 1-len 个的
最长子串长度
思路:套用kmp的性质
#include
#include
#include
using namespace std;
#define n 1300
void getnext(char str[n],int next[n]){
int m=strlen(str);...
分类:
其他好文 时间:
2014-05-08 17:12:53
阅读次数:
330
问题描述:给出模板串A和子串B,长度分别为lenA和lenB,要求在线性时间内,对于每个A[i](0求一个字符串的最长回文子串和最长重复子串。
算法讲解:设next[i]为满足B[i..i+z-1]==B[0..z-1]的最大的z值(也就是B的自身匹配)。设目前next[0..lenB-1]与ex[0..i-1]均已求出,要用它们来求ex[i]的值。
设p为目前A串中匹配到的最远位置...
分类:
其他好文 时间:
2014-05-08 16:10:14
阅读次数:
301
题目:
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1686
题意:
输入t,是测试组数。每组测试,依次输入 字符串s1和s2。求出s2中s1的个数,可以有重叠。
思路:
KMP算法。
代码:
#include
#include
#include
using namespace std;
char s1[1001...
分类:
其他好文 时间:
2014-05-08 15:55:31
阅读次数:
285
题目:
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087
题意:
给出字符串s1和s2,找出s1中有多少个s2。
算法:
KMP字符串匹配。
思路:
简单,看代码吧。(需要注意的就是字符串用要scanf输入)
代码:
#include
#include
#include
using namespac...
分类:
其他好文 时间:
2014-05-07 04:46:37
阅读次数:
304
题意:给出1-10个长度为60的字符串,求出最长的公共子串(长度不能小于3),如果有多个一样长的,输出字典序最短的。
解法:想到kmp时,自己第一反应枚举第一个串的所有子串,在其他所有串中走一遍kmp,复杂度为10*60*60*60,但是发现只需枚举第一个串后缀就可以,每次枚举记录在所有串能走最远中走的最短的那个长度。这样复杂度就成了10*60*60,0ms AC。
代码:/*****...
分类:
其他好文 时间:
2014-05-06 22:41:38
阅读次数:
320
Count the string
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4212 Accepted Submission(s): 1962
Problem Description
It is wel...
分类:
其他好文 时间:
2014-05-06 15:27:24
阅读次数:
306
String Problem
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1442 Accepted Submission(s): 645
Problem Description
Give you a str...
分类:
其他好文 时间:
2014-05-03 21:28:56
阅读次数:
289
D. Match & Catch
可以用各种方法做,字符串hash,后缀数组,dp,拓展kmp,字典树。。。
字符串hash(模板)
http://blog.csdn.net/gdujian0119/article/details/6777239
BKDR Hash Function :
// BKDR Hash Function
unsigned int BKDRHash(c...
分类:
其他好文 时间:
2014-05-03 21:20:47
阅读次数:
282
亲和串
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述最近zyc遇到了一个很棘手的问题:判断亲和串,以前判断亲和串的时候直接可以看出来,但现在不同了,现在给出的两字符串都非常的大,看的zyc头都晕了。于是zyc希望大家能帮他想一个办法来快速判断亲和串。亲和串定义:给定两个字符串s1和s2,如果能通过s1循环移动,使s2包含在s1中,那么我们就...
分类:
其他好文 时间:
2014-05-03 17:08:31
阅读次数:
247
算法:
#include
using namespace std;
#define MAXSIZE 100
void calNext(const char *T,int *next);//T为模式串,next为预判数组
int kmp_match(const char *S,const char *T);//在主串S中寻找模式串T,如果找到返回其位置,否则返回-1。位置从0开始
void ...
分类:
其他好文 时间:
2014-05-02 02:25:40
阅读次数:
280