![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串—KMP算法
发型睡姿决定
越努力,越幸运
展开
-
Seek the Name, Seek the Fame POJ - 2752(KMP和hah两种方法求公共前后缀)
POJ - 2752问题分析:读懂题后知道,这个题要算的是,给定一个字符串s,有哪些长度的s的前缀,同时也是s的后缀。首先明确一下前缀和后缀的概念。字符串s的前缀是指,从s的开始字符到s的任意字符为止的子串。字符串s的后缀是指,从s的任意字符到s的最后字符为止的子串。s是既是自身的前缀也是自身的后缀。这个问题利用KMP算法的next[]数组来解。首先对于输入的字符串s,计算其next[]数...原创 2019-08-12 10:52:25 · 136 阅读 · 0 评论 -
Best Reward HDU - 3613(切割判断回文串是总价值最大)
HDU - 3613题意:给你一串字符串,每个字符都有一个权值,要求把这个字符串在某点分开,使之成为两个单独的字符串如果这两个子串某一个是回文串,则权值为那一个串所有的字符权值和若不是回文串,则权值为0思路:先manacher算法扫一遍,前缀和也扫一遍,暴力枚举前面的回文串中点,如果这个回文串的第一位的id不是1,那么这个回文串的值为0,不然就用前缀和算出前串总值,这样同理也可以得到...原创 2019-08-07 15:11:43 · 179 阅读 · 0 评论 -
Theme Section HDU - 4763(Next数组求符合EAEBE形式情况下最大E子串的长度)
Theme Section HDU - 4763题意:一个字符串,求符合EAEBE形式情况下最大E子串的长度思路:前缀E和后缀E可以用next数组求出,然后在判断中间的E是否存在,具体做法是:next[len]=i,在【2 * i ,len - i】(因为不能重合)内找是否有next[j]=i,存在则i就为答案,不存在的话令i=next[i],而不是i–,继续找#include<ios...原创 2019-08-06 17:52:46 · 100 阅读 · 0 评论 -
扩展KMP算法
扩展KMP: 给出模板串A和子串B,长度分别为lenA和lenB,要求在线性时间内,对于每个A[i](0<=i<lenA),求出A[i…lenA-1]与B的最长公共前缀长度,记为ex[i](或者说,ex[i]为满足A[i…i+z-1]==B[0…z-1]的最大的z值)。 需要有两个辅助数组:extand[i]和next[i]; extand[i]:表示主串...原创 2019-08-06 13:28:04 · 358 阅读 · 0 评论 -
Next数组应用
Simpsons’ Hidden Talents HDU—2594题意:每组数据给出两个字符串 s1、s2,判断是否存在 s1 的前缀是 s2 的后缀的情况,若没有则输出 0,若有则输出这个前缀/后缀与其长度思路:利用strcat函数将两个串和成一个串,最后Next[len]即为所求。要注意最长前缀后缀不能大于两个子串的长度len1,len2。#include <iostream>...原创 2019-08-06 10:52:40 · 199 阅读 · 0 评论 -
Blue Jeans POJ - 3080(kmp&&暴力枚举)
POJ—3080The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was pop...原创 2019-08-06 09:29:53 · 99 阅读 · 0 评论 -
Power Strings POJ - 2406(kmp算法求最小循环节)
poj-2406题目大意:给出一个字符串 问它最多由多少相同的字串组成如 abababab由4个ab组成题目分析:要用到KMP中的next数组来计算最小循环节。KMP最小循环节、循环周期:定理:假设S的长度为len,则S存在最小循环节,循环节的长度L为len-next[len],子串为S[0…len-next[len]-1]。(1)如果len可以被len - next[len]整除,...原创 2019-08-05 17:48:39 · 193 阅读 · 0 评论 -
Cyclic Nacklace(kmp算法求最小循环节)
HDU—3746CC always becomes very depressed at the end of this month, he has checked his credit card yesterday, without any surprise, there are only 99.9 yuan left. he is too distressed and thinking abo...原创 2019-08-05 14:05:59 · 356 阅读 · 0 评论 -
kmp算法及模板
题目链接Given two sequences of numbers : a[1], a[2], … , a[N], and b[1], b[2], … , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b[1], a[K + 1] ...原创 2019-08-05 12:56:36 · 117 阅读 · 0 评论