首先声明一下,这里的规律指的是循环,即找到最小循环周期。这么一说大家心里肯定有数了吧,“不就是next数组性质的应用嘛”。先来看一道题ZOJ 3785What day is that day?Time Limit:2 Seconds Memory Limit:65536 KBIt's Saturda...
分类:
其他好文 时间:
2014-08-03 01:44:54
阅读次数:
403
UVA 11475 - Extend to Palindrome
题目链接
题意:给定一个字符串,问需要补上最少的字符使他变成回文串
思路:KMP,把字符串逆序和原串做匹配,匹配到最后一个字符看匹配了多少个,就是最大重合部分,然后相应输出即可
代码:
#include
#include
#include
using namespace std;
const i...
分类:
其他好文 时间:
2014-08-02 21:00:44
阅读次数:
212
UVA 10298 - Power Strings
题目链接
题意:本意其实就是,给定一个字符串,求出最小循环节需要几次循环出原字符串
思路:利用KMP中next数组的性质,n - next[n]就是最小循环节,然后n / 循环节就是答案
代码:
#include
#include
const int N = 1000005;
char str[N];
int ...
分类:
其他好文 时间:
2014-08-02 18:21:43
阅读次数:
282
当我们判断数据的格式是否符合规范的时候,一般会采用两种方式:
一种是if...else不断的嵌套或者if...else并排判断的方式
(这两者代表以条件正确为前提还是以条件错误为前提的)
另一种就是正则表示式。
字符串匹配给正则表达式:boolean matches(Stirng regex)
用法:String.matches(regex)
当然可以说if...els...
分类:
编程语言 时间:
2014-08-02 15:40:33
阅读次数:
264
A -KMP模式匹配 一(串)Crawling in process...Crawling failedTime Limit:1000MSMemory Limit:131072KB 64bit IO Format:%lld & %lluDescription求子串的next值,用next数组存放,所...
分类:
其他好文 时间:
2014-08-01 22:34:22
阅读次数:
170
#include
#include
#include
typedef struct
{ char *ch;
int length;
}HString;
void StrAssign(HString &T,char chars[]);
int get_next(HString T,int next[]);
void main()
{ HString T;
char chars[80];
in...
分类:
其他好文 时间:
2014-08-01 13:51:23
阅读次数:
229
UVA 1328 - Period
题目链接
题意:给定一个字符串,求出有几个位置的前缀串是由个数大于1的串循环得到的,求出位置和循环次数
思路:利用kmp的next数组的性质,i - next[i]就是循环长度,然后判断一下是不是正好是倍数即可
代码:
#include
#include
const int N = 1000005;
int n, next[...
分类:
其他好文 时间:
2014-08-01 13:49:11
阅读次数:
171
1、KMP是一种用来进行字符串匹配的算法,首先我们来看一下普通的匹配算法:现在我们要在字符串ababcabcacbab中找abcac是不是存在,那么传统的查找方法就是一个个的匹配了,如图:经过六趟匹配之后,终于匹配上了。现在是数据比较小的时候,大家可能没有什么感觉,如果我们的数据是百万级别的,那用这...
分类:
其他好文 时间:
2014-07-31 16:54:06
阅读次数:
258
D -Count the stringTime Limit:1000MSMemory Limit:32768KB64bit IO Format:%I64d & %I64uSubmitStatusDescriptionIt is well known that AekdyCoin is good at...
分类:
其他好文 时间:
2014-07-31 16:39:46
阅读次数:
215
/** * 假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置 如果j = -1,或者当前字符匹配成功(即S[i] == * P[j]),都令i++,j++,继续匹配下一个字符; 如果j != -1,且当前字符匹配失败(即S[i] != P[j]),则令 i 不变,j = * next[j]...
分类:
编程语言 时间:
2014-07-31 16:28:46
阅读次数:
255