![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串处理
文章平均质量分 56
onthewaytotop
每天一道搜索题有益身心健康~
展开
-
codeforces No to Palindromes!(字符串处理,不能有回文)
题意:给你两个整数n,p,n表示字符串的长度,p表示在字母表中只能用前p个字母。然后给你一个符合没有回文字串的字符串s,求是否有下一个这样的字符串且字典序比s大但最小。 分析:握草啊,做完这题不小心超神排第四了,但是是因为看了大神的思路后才敲出来的【罪过罪过】。大神说: 下一个满足的字符串一定是改变尽量靠右的字符才能得到(字典序), 从最右面开始找,假设当前是第i位,如果i位增加之后满足和转载 2016-07-22 15:53:34 · 771 阅读 · 0 评论 -
hdu 2087 剪花布条 (kmp模板题)
看样例就知道题意,kmp模板的稍微改动 Sample Input abcde a3 aaaaaa aa # Sample Output 0 3 #include #include #include #include using namespace std; char t[1111],p[1111]; int pi[1111]; void getFail(char原创 2016-07-22 11:09:39 · 261 阅读 · 0 评论 -
kmp算法模板
据说是刘佳汝书籍里的模板,亲测能用: void getFail(char* P, int* f) { int m = strlen(P); f[0] = 0; f[1] = 0; for(int i = 1; i < m; i++) { int j = f[i]; while(j && P[i] != P[j]) { j = f[j]; } f[i + 1转载 2016-07-22 11:00:01 · 191 阅读 · 0 评论 -
字符串搜索之BMH 算法(伪代码)
天哪,算法复杂度越来越低了,连线性的都不用了!!O(n-m)!!从后往前扫的功效!!(要匹配的字符) 逆简单算法 • 如果从P的后面开始搜索? – Boyer and Moore Reverse-Naive-Search(T,P) 01 for s 02 j 03 // check if T[s..s+m–1] = P[0..m–1] 04 while T[s+j] = P原创 2016-07-21 21:19:19 · 1140 阅读 · 0 评论 -
字符串搜索之KMP算法(伪代码)
之前的Rabin-Karp算法虽然在一定程度上达到了优化,但是最坏情况下也是O(nm)的复杂度。 接下来说说KMP算法,复杂度是线性的O(n+m) 前缀表 • 我们可以预先计算大小为m的前缀表来存储p[q]的 值 (0 P p a p p a r q 0 1 2 3 4 5 6 p[q] 0 0 0 1 1原创 2016-07-21 20:38:20 · 2626 阅读 · 0 评论 -
字符串搜索之Rabin-Karp 算法(伪代码)
最近在听哈尔滨工业大学王宏志老师的《算法设计与分析》这门课,感觉受益匪浅。今天就记录一下有关字符串搜索的Rabin-Karp 算法。原创 2016-07-21 19:50:54 · 801 阅读 · 0 评论