随笔分类 -  字符串处理

HDU 2846 字典树 非前缀子串的计数
摘要:这道题目与一般的字典树不同的是要查询的字符串不是已经插入字符串的前缀,同时也不是后缀,只需满足该字符串是其中一个商品的子串即可,考虑到既然要用i到字符串,所以对于每一个商品的字符串插入以每一个字符开头后缀,但是后来出现了一个问题,就是对于以i下标开头的子串同时是以i结尾的前面某一字符串的子串时,会出现重复计数的问题,想过在每一个节点用一个set作为经过该节点的字符串的Id号,很显然,内存超了,后来看网上说既然是要避免同一个商品的字符串出现重复问题,只需在节点标记一下经过此节点的最后的那个商品的标号,标号相同时候,count不变,不同的时候count++,这样便解决了问题。。。View Code 阅读全文

posted @ 2011-09-27 21:11 lonelycatcher 阅读(560) 评论(0) 推荐(0)

HDU 1867 A+B for you again
摘要:这道题的意思就是找出一个最大的公共子串,这个子串是一个字符串的尾串(tail substring ),同时是另外那个字符串的头串(head substring),是满足A+B的长度strlen(A+B)达到最小值,这里面要注意的一个问题是,谁做模式串P是不一定的,所以要分别比较不同字符串作为模式的KMP值。这里用到KMP匹配算法里面的next函数,KMP返回的就是那个公共子串的长度。View Code 1 #include <iostream> 2 #include<stdio.h> 3 #include<string.h> 4 #include<st 阅读全文

posted @ 2011-09-15 22:48 lonelycatcher 阅读(518) 评论(0) 推荐(0)

poj 3461 KMP模式匹配算法
摘要:哎~看了N天的KMP字符串匹配算法,还是不怎么懂,照着书上写的模板写了一遍,以后继续研究。。。。View Code 1 /* 2 * Author:lonelycatcher 3 * problem:poj 3461 4 * Type:字符串匹配算法 Rabin-Karp算法 ,KMP算法(Rabin_-Karp算法会超时) 5 */ 6 #include <iostream> 7 #include<string.h> 8 #include<string> 9 #include<stdio.h>10 using namespace std;11 阅读全文

posted @ 2011-09-13 18:17 lonelycatcher 阅读(295) 评论(0) 推荐(0)

KMP字符串匹配算法
摘要:转自:http://www.cnblogs.com/lxf90/articles/2012015.html个人觉得这篇文章是网上的介绍有关KMP算法更让人容易理解的文章了,确实说得很“详细”,耐心地把它看完肯定会有所收获的~~,另外有关模式函数值 next[i]确实有很多版本啊,在另外一些面向对象的算法描述书中也有失效函数 f(j)的说法,其实是一个意思,即next[j]=f(j-1)+1,不过还是next[j]这种表示法好理解啊: KMP字符串模式匹配详解KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证. 阅读全文

posted @ 2011-09-11 09:00 lonelycatcher 阅读(1088) 评论(0) 推荐(0)

导航