字符串处理
ddmike2015
这个作者很懒,什么都没留下…
展开
-
poj 2752 Seek the Name, Seek the Fame
题目地址:http://poj.org/problem?id=2752 题目大意是求一个串中所有的满足前缀等于后缀的子串的长度(前面一部分与后面一部分完全匹配),这题是字符串的处理,可以利用kmp的next数组来做,next数组是当前最大的前缀等于后缀的前缀子串的位置。这题字符串自己本身显然是可行的,之后找本身的最大前缀后缀匹配子串,依次递归下去就可以了。 代码附上: #include #i原创 2015-11-08 19:24:40 · 286 阅读 · 0 评论 -
kmp模板
#include #include #include using namespace std; const int MAXN=100000; char a[MAXN],b[MAXN]; int i,j,n,m,next[MAXN],p; int main() { scanf("%s",&a[1]); scanf("%s",&b[1]); m=strlen(&b[1]); n原创 2015-11-08 19:41:43 · 265 阅读 · 0 评论 -
CODE[VS] 1404 字符串匹配
题目地址:http://codevs.cn/problem/1404/ 毕竟是中文题目,题目意思在上面很明显了,就是计算从A的任意位开始的子串和B匹配的长度,求出匹配长度恰为x的位置有多少个? 这题是一题裸的kmp,不过稍微需要思考下 代码附上: #include #include #include using namespace std; const int MAXN=200012; i原创 2015-11-08 21:12:51 · 765 阅读 · 0 评论 -
求最长回文串(Manacher算法)
O(n)效率的字符串求最长回文串,感觉这个blog上写的很详细:http://www.open-open.com/lib/view/open1419150233417.html 有几个要点: 1、先要将字符串扩展成2*l+1长度的,在每两个字符之间要加上一个用不到的字符,比如‘#’,方便处理偶数回文串。 2、在扩展后的字符串两端要加一些特殊字符,防越界。 3、ra[i]数组表示以i为中点的原创 2016-10-27 20:44:42 · 356 阅读 · 0 评论