随笔分类 -  ACM_字符串

摘要:题意:给你长度为n(<=100000)的字符串,问你任意删除一个字符后得到循环节最多的数量是多少 题解:最简单的想法就是枚举删除的字符,再kmp求循环节,但是时间复杂度为O(n*n)会超时 因此我们需要这样,需要删除的字符我们不能枚举,只能通过一些特别的方法来寻找或者判断 我们根据kmp求循环节的想 阅读全文
posted @ 2016-11-06 01:04 专注如一 阅读(395) 评论(0) 推荐(0) 编辑
摘要:题意:给你一些模式串,再给你一串匹配串,问你在匹配串中出现了多少种模式串,模式串可以相同 AC自动机:trie树上进行KMP。首先模式串建立trie树,再求得失配指针(类似next数组),其作用就是在这一位不匹配时转移到失配指针上。失配指针是转移到某个等于此位置最长后缀的位置,求法是bfs 阅读全文
posted @ 2016-09-20 02:34 专注如一 阅读(208) 评论(0) 推荐(0) 编辑
摘要:题意:给你一串字符串s,再给你两个数字m l,问你s中可以分出多少个长度为m*l的子串,并且子串分成m个长度为l的串每个都不完全相同 首先使用BKDRHash方法把每个长度为l的子串预处理成一个数字,接着根据题意直接map判重 BKDRHash:一种常用字符串hash,hash简单来说就是把一串字符 阅读全文
posted @ 2016-09-20 02:20 专注如一 阅读(165) 评论(0) 推荐(0) 编辑
摘要:学到了以邻接表方式建立的hashmap 题意:给你一串数a和一个数k,都有正有负,问知否能找到一对数(i,j)(i<=j)保证a [i] - a [i+1] + a [i+2] - a [i+3]........(-1)^(j-i) a[j] 等于k 题解:想了很久才想出一个方法就是:记录前缀和,利 阅读全文
posted @ 2016-09-20 02:03 专注如一 阅读(193) 评论(0) 推荐(0) 编辑
摘要:拓展kmp是对KMP算法的扩展,它解决如下问题: 定义母串S,和字串T,设S的长度为n,T的长度为m,求T与S的每一个后缀的最长公共前缀,也就是说,设extend数组,extend[i]表示T与S[i,n-1]的最长公共前缀,要求出所有extend[i](0<=i<n)。 注意到,如果有一个位置ex 阅读全文
posted @ 2016-09-16 23:21 专注如一 阅读(159) 评论(0) 推荐(0) 编辑
摘要:很不错的一个题(注意string会超时) 题意:给你n串字符串,问你两两匹配形成n*n串字符串中有多少个回文串 题解:我们首先需要想到多串字符串存储需要trie树(关键),然后我们正序插入倒序匹配就可以O(len)找到回文串个数了。 但是如果每次直接查询到结尾的话会漏掉两种情况 如: 1:a 与 b 阅读全文
posted @ 2016-09-16 23:19 专注如一 阅读(209) 评论(0) 推荐(0) 编辑
摘要:题意:给你一串n个数,求出循环来看一阶差的最小字典序:数字串看成一个顺时针的环,从某一点开始顺时针循环整个环,保证字典序最小就是答案 例如给你 2 1 3 就会得到(1-2+8 注意题意负数需要加8) (3-1) (2-3+8)-> 7 2 7 答案就是2 7 7。 典型的最小表示法。线性时间内求出 阅读全文
posted @ 2016-09-16 01:16 专注如一 阅读(272) 评论(0) 推荐(0) 编辑
摘要:题意:假设有n个人按顺序的身高分别是h[1], h[2] ... h[n],从中挑出一些人形成一个新的队形,新的队形若满足以下要求,则就是新的完美队形: 1、连续的 2、形成回文串 3、从左到中间那个人,身高需保证不下降 问有组成完美队形的最多人数 题解:Manacher算法的变形。 首先我们来解释 阅读全文
posted @ 2016-09-14 22:38 专注如一 阅读(300) 评论(0) 推荐(0) 编辑
摘要:题意:给你两串数字,长度分别为n和m,数字大小在[1,25]。当后一串数字每个数字的排名位置与前一串数字(任一长度为m的子串)每个数字的排名位置一致时就完全匹配,最后求哪些位置是完全匹配的。 例如:1 4 2 5 3 6 与 1 3 2 4 答案就是:1 3(第一串数字的第一个位置开始与第三个位置开 阅读全文
posted @ 2016-09-14 21:33 专注如一 阅读(267) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示