字符串
文章平均质量分 62
mosquito_zm
这个作者很懒,什么都没留下…
展开
-
POJ3630(Trie树)
题意:求给定的多个串中是否存在,某个串是另一个串的前缀。 解题思路:使用Trie树。在每次插入一个串的同时判断。对于该问题,只存在以下两种情况: 1.当前插入的串的前缀是前面的某个串。对于这种情况,把前面插入的串的最后一个节点记为危险节点。那么在后面插入串的时候,如果经过危险节点,说明这种情况成立。 2.当前插入的串是前面某个串的前缀。对于这种情况,把插入串的最后一个节点单转载 2017-07-12 20:52:46 · 300 阅读 · 0 评论 -
Codeforces346B Lucky Common Subsequence(KMP+dp)
题目链接 题解:对于LCS问题,我们的正解是用dp解决。而本题目中还有了一个数组是不能够包含的,所以我们可以给dp新增加一维。 dp[i][j][k]表示A串前长度为i的子串,B串前长度为j的子串,能匹配到的C串的最长位置为k时的最长长度。 转移时,与LCS问题类似。对于k的转移,就是要判断当前为是否可以继续匹配到C中k的下一位中去,如果可以,就加1,不可以,就根据失配函数进行转移,知道可以原创 2017-07-15 12:29:55 · 432 阅读 · 0 评论 -
一些扩展kmp的总结
花了一天多时间学了下ex_kmp。。。。 可以看刘雅琼的ppt,讲的非常清楚: 下载地址:http://url.cn/Rvjxa9 ex_kmp可以在线性时间内求文本串的每个位置与模板串的最大公共前缀 ,写法和普通kmp差不多。。 我的写法是: next[i]: P[i..m-1] 与 P[0..m-1]的最长公共前缀 ex[i]: T[i..n-1] 与 P[0..m-1]的转载 2017-07-18 10:53:42 · 361 阅读 · 0 评论 -
Codeforces 835D Round #427 D-Palindromic characteristics—— DP+回文串
注意:凡是可以用O(n^2)算法求回文串时候,都可以用dp求解。dp[i][j] = (s[i] == s[j]) ? dp[i + 1][j -1] : 0(即当前两端是否相等,若相等,则只取决于中间是不是回文串)。预处理的时候,只需要令所有的dp[i][i] = 1,dp[i][i - 1] = 1(方便转移)即可。 题解: Observation I. If the str原创 2017-08-07 17:10:02 · 242 阅读 · 0 评论 -
KMP算法详解
kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现讲清楚。 kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是转载 2017-08-03 21:23:26 · 189 阅读 · 0 评论 -
字符串:KMP Eentend-Kmp 自动机 trie图 trie树 后缀树 后缀数组
涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机KMP算法Extend-KMP 后缀树 后缀数组 trie树trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,我们只要用简单的暴力算法就可以解决了,然后如果暴力效率太低,就用个hash。当然hash也是一个面试中经常转载 2017-07-17 13:49:35 · 534 阅读 · 0 评论 -
ACM中常用算法—-字符串
ACM中常用的字符串算法不多,主要有以下几种: Hash字典树KMPAC自动机manacher后缀数组EX_KMPSAM(后缀自动机)回文串自动机 下面来分别介绍一下: 0. Hash 字符串的hash是最简单也最常用的算法,通过某种hash函数将不同的字符串分别对应到不同的数字.进而配合其他数据结构或STL可以做到判重,统计,查询等操作. #### 字符串的hash转载 2017-07-17 14:13:00 · 653 阅读 · 0 评论 -
五分钟搞懂后缀数组!后缀数组解析以及应用(附详解代码)
为什么学后缀数组 后缀数组是一个比较强大的处理字符串的算法,是有关字符串的基础算法,所以必须掌握。 学会后缀自动机(SAM)就不用学后缀数组(SA)了?不,虽然SAM看起来更为强大和全面,但是有些SAM解决不了的问题能被SA解决,只掌握SAM是远远不够的。 …… 有什么SAM做不了的例子? 比如果求一个串后缀的lcp方面的应用,这是SA可以很方便的用rmq来维护,但是SAM转载 2017-11-20 14:32:45 · 622 阅读 · 1 评论