![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
字符串算法
字符串算法
qianguch
这个作者很懒,什么都没留下…
展开
-
Phone List——Trie树
题目描述: **题目链接:**HDU 1671 http://acm.hdu.edu.cn/showproblem.php?pid=1671 给出一份电话号码列表,如果不存在有一个号码是另一个号码的前缀,我们就说这份电话号码列表是合法的。让我们看看如下号码列表: 1. Emergency 911 2. Alice 97625999 3. Bob 91125426 在这组号码中,我们原创 2017-07-13 16:34:24 · 314 阅读 · 0 评论 -
统计难题——Trie树
题目描述: 题目链接: HDU 1251 http://acm.hdu.edu.cn/showproblem.php?pid=1251 Ignatius 最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀)。 输入格式: 输入数据的第一部分是一张单词表(不超过 10410^4 个单词),每行原创 2017-07-13 16:46:38 · 204 阅读 · 0 评论 -
Shortest Prefixes——Trie树
trie树模板。每次加入都计数,对于满足非公共前缀的,则前部分的num大于1,后面等于1,只需输出到第一个1的位置。对于不满足的则直到单词结尾都大于1,输出全部即可原创 2017-07-14 09:53:26 · 207 阅读 · 0 评论 -
字符串匹配——KMP
题目描述: 给定两个由小写字母构成的字符串 L 和 S 。 请你从左到右,找出子串 L 在母串 S 中每次出现的开始位置(匹配位置)。 输入格式: 第一行:给一个全由小写字母构成的母串 S(0<S的长度≤1000000); 第二行:给一个全由小写字母构成的子串 L(0<L的长度≤S的长度)。 输出格式: 按升序输出一行一个整数,分别表示子串 L 在母串 S 中每次出现的开始位置。 如原创 2017-07-14 11:01:15 · 190 阅读 · 0 评论 -
删除子串——KMP
KMP。这道题的难点在于删掉一个T后,前后又可能出现一新的T串,并且怎样"删"也是一个问题,怎样才不会超时。最开始我把删掉的部分赋成0,超时;把后面的往前移,超时。最后的方法是匹配的同时依次存入一个数组,每次删掉一个T时,此数组下标就减掉一个T的长度,相当于删掉了T,然后继续存。对于合并后可能产生新的T的问题,处理见代码。原创 2017-07-14 12:54:27 · 1441 阅读 · 0 评论 -
Manacher算法
网上看到一个很不错的,所以自己就不写了。 链接:https://segmentfault.com/a/1190000003914228 但它的文章有一个小问题:第四幅图蓝线应该是划分在红格的左边。 附例题: Palindrome (POJ 3974) 题目大意: 给定一个长为 n 的字符串,求它的最长回文子串。数据组数不超过30. n <= 10^6 分析: Manacher模板题原创 2017-07-02 14:24:05 · 319 阅读 · 0 评论 -
[NOIP模拟][AC自动机]字符串
样例输入: 3 5 ab bc abc acbcb 2 b 3 c 4 a 1 b 3 a样例输出: 1 2 3 4 2 1题目分析: 如果没有修改操作就是AC自动机模板题。记录n个字符串T中最长的长度为maxt,每次修改位置pos上的字符,其实它只会影响区间[pos-max原创 2017-10-16 20:36:02 · 290 阅读 · 0 评论