随笔分类 -  字符串-KMP

摘要:题意 给一个循环串,从某个点开始会得到一个字典序最小的串,从某个点开始会得到一个字典序最大的串,求这两个点的下标,以及其出现的次数。 "传送门" 思路 最小/大表示法求下标,kmp求出现次数。 "最小/大表示法" Code cpp include include using namespace st 阅读全文
posted @ 2019-09-13 14:44 Acerkoo 阅读(164) 评论(0) 推荐(0)
摘要:题意 给定一个字符串,求其子串,该子串即是前缀又是后缀,也是既非前缀也非后缀的字串。 "传送门" 思路 前缀数组的灵活应用,对于即使后缀也是前缀的子串,判断是否在之前出现过即可。 Code cpp include using namespace std; const int maxn = 1e6+1 阅读全文
posted @ 2019-08-06 10:42 Acerkoo 阅读(168) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-08-05 23:31 Acerkoo 阅读(174) 评论(0) 推荐(0)
摘要:KMP是一种复杂度为O(n+m)的字符串匹配算法,最难理解的部分就是Next数组的求解 Next数组即为模板串的每个位置对应的 0~i 位置的前缀与后缀中的最大公共部分,依此公共部分来实现模板串的移动匹配,依此大幅度降低了字符串匹配的复杂度。 Next数组的其实就是对模板串相同前缀后缀的一个递归匹配 阅读全文
posted @ 2018-08-04 19:28 Acerkoo 阅读(160) 评论(0) 推荐(0)