![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
串匹配
文章平均质量分 68
yinyuanlin123
这个作者很懒,什么都没留下…
展开
-
hdu1251 统计难题 数据结构之Trie树
哈哈,第一次用Trie树,从网上找了个模板改了改,然后自己写了search()。题目很简单,就不解释了。#include#include const int sonnum=26, base='a';struct Trie{ int num; //记录有多少个单词能到达次,也即相同前缀的个位 //bool terminal; //判断是否是结束节点 struct Trie原创 2012-09-13 21:33:44 · 421 阅读 · 0 评论 -
poj 3630 || zoj 2876 ||hdu 1671 Phone List (Trie树的应用)
这道题也是Trie树 应用的入门题,题意:问输入的一组电话号码中有没有某一个号码是另一个的前缀。开始的代码在hdu上AC了,交到poj上却超时了。后来,看了discuss,发现自己用了new操作,而没有先开辟空间。若用缓存,每次有新节点时直接存放在已开辟的空间内,会节省很多时间。之后把代码稍改了改,就ac了,188ms~~题目链接:POJ 3630、 ZOJ 2876 、HDU原创 2012-09-15 14:38:51 · 644 阅读 · 0 评论 -
KMP入门题 HDU1686、hdu 1711、hdu 2203
几道简单的可以用KMP解答的题目,也是刚学KMP时做的。学习KMP给我最大帮助的是此博文:http://www.matrix67.com/blog/archives/115/(要是对KMP还不是太懂的,建议去看看此博文)HDU 1686 Oulipo题意就是给两个字符串W和T,问W在T中出现的次数。代码:#include#include char a[10原创 2012-10-16 10:28:25 · 546 阅读 · 0 评论 -
POJ 2752、2406、1961 KMP的next[](或p[])简单应用
以下几题都是对p[](或next[])的简单应用。做了这几题,能在一定程度上加深对p数组初始化的理解。POJ 2752 Seek the Name, Seek the Fame题目的意思就是求一个字符串的子串可能的长度,子串需满足既是母串的前缀又是母串的后缀。这题是对p数组的应用。想一下字符串自己跟自己匹配的过程,就知道怎么做了。假设s1和s2匹配(s1==s2,令m=strl原创 2012-10-17 19:22:17 · 375 阅读 · 0 评论 -
POJ 3450 Corporate Identity 、 POJ 3080 Blue Jeans
这两题都是找出所给字符串的最长公共子串。本来是简单的枚举,直接枚举第一个串s[0]的所有子串(从长到短),看是否是其他所有字符串的子串,若是,则只需再将s[0]的相同长度的其他子串检测一遍就好了。再找满足条件的子串中的最小串就很简单了(其实检测过程中比较一下即可)。但该方法效率太低,超时。怎样才能高效呢?具体是这样的:枚举s[0]的所有后缀,以后缀为匹配串,将其与其他串匹配。在原创 2012-10-18 23:54:43 · 408 阅读 · 0 评论 -
POJ 1226 Substrings
题目链接:http://poj.org/problem?id=1226给一些字符串,求公共的最长子串的长度。用到了KMP算法我的解法很一般,先对字符串排个序,最短的在最前面。然后通过枚举(从长到短)每一个最短串的子串,看其或其反串是否是其他所有串的子串。代码:#include #include #include #include using namespac原创 2012-10-27 21:50:27 · 701 阅读 · 0 评论