字符串
……
逃夭丶
你是我荒唐青春里唯一的认真
展开
-
字典树(Trie)+ 0/1字典树
一、基本概念: 字典树(Trie)是一种用于实现字符串快速检索的多叉树结构。字典树的每一个结点都拥有若干个字符指针,若在插入或检索字符串时扫描到一个字符 c,就沿着当前结点的 c 字符指针,走向该指针指向的结点。1、初始化 一棵空字典树仅包含一个根节点,该点的字符指针均指向空。2、插入操作 当需要插入一个字符串 str 时,我们另一个指针 p 指向根节点。人后,依次扫描 s 中的每...原创 2020-02-12 21:04:59 · 273 阅读 · 0 评论 -
KMP中next数组的理解与应用
理解一、next数组的含义next[i] 代表的是 i 位之前的字符串(不包括 i 位)的最长公共前缀和后缀的长度例如:字符串P:ABCABCABCABi01234567891011PABCABCABCABnext-100012345678next数组的获得:// pl 字符串 P 的长...原创 2020-02-04 15:39:53 · 1511 阅读 · 0 评论 -
最大最小表示法
最小(大)表示法用途:一个首尾相连的字符串,找寻一个位置,使得以这个位置为起点的新字符串的字典序最小(大)。最小表示法代码:int getmin(){ int ls = strlen(s); int i=0,j=1,k=0,t; //表示从i开始k长度的字符串和从j开始k长度的字符串相同 while(i<ls&&j<ls&...原创 2020-02-02 16:09:09 · 189 阅读 · 0 评论 -
Manacher算法的应用
Manacher算法是大家常用的,用来求回文串系列问题的算法具体算法过程,我不多说,不知道的,可以看:Manacher算法详述通过Manacher算法之后,我们会得到几个比较重要的信息:首先,就是这个字符串有无回文子串,以及最长的回文子串的长度。其次,就是以某一点为中心的回文半径,也就是 p 数组。出题人比较喜欢在这个上面做文章...原创 2020-01-27 14:20:01 · 196 阅读 · 0 评论 -
最长回文问题
一、最长回文子串 最长回文子串的问题描述: 给出一个字符串 S ,求 S 的最长回文子串的长度。 样例: 字符串"PATZJUJZTACCBCC"的最长回文子串为"ATZJUJZTA",长度是9方法一: 暴力出奇迹,O(n3),枚举子串的两个端点 i 和 j,判断在[i,j]区间内的子串是否为回文。方法二: 转化为LCS问题:把字符串 S 倒过来变成字符串 T ,然后对...原创 2019-07-28 16:18:28 · 438 阅读 · 0 评论 -
KMP中next数组的理解
本文参考于:https://www.cnblogs.com/lfri/p/10341479.html一、next数组遍历整个字符串,next[i]表示在i前即[0, i-1]中前后缀相同的最大长度; 最简单你可以从 next 数组中直接得到,母串的最长公共前后缀串的长度,出题人可以在这上面做一下文章,比如说下面这个题目,让你再判断一下这个前后缀串是不是在母串中间出现过一次:CodeForc...原创 2019-11-04 23:29:03 · 260 阅读 · 0 评论 -
拓展KMP
本文参考于:https://blog.csdn.net/Floraqiu/article/details/81558865拓展KMP 拓展KMP是对KMP算法的拓展,它解决如下问题: 给定母串 S ,子串 T 定义 n=|S|,m=|T|,extend[i] = S[i…n-1] 与 T 的最长公共前缀长度,线性时间复杂度(O(n+m))内,求出所有的 extend[1…n-1]。...原创 2019-10-30 21:48:27 · 122 阅读 · 0 评论 -
HDU 2072 单词数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。Input有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。Outp...原创 2019-10-30 20:08:14 · 1146 阅读 · 0 评论 -
KMP算法
本文参考自:https://www.cnblogs.com/ZuoAndFutureGirl/p/9028287.html 假设现在我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢? 如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有:如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继...原创 2019-10-30 20:02:24 · 135 阅读 · 0 评论 -
字符串子序列问题:
这里,字符串的子序列是字符串中一个或多个字符的串联,而不改变顺序。一、就单纯的求解字符串有多少子序列,没有别的要求,思路: 我们可以这么认为,看作字符串的拿取问题,即从母串(长度为n)中拿出字符组成新的子序列,那么每一位的字符都有两种状态,拿与不拿,所以就是2n问题,但是你又不能全都不拿,所以就是2n-1;一般来说,就提前打表,该取余就取余;二、不单纯的求解,即存在重复字符的处理问题: ...原创 2019-07-14 20:00:38 · 876 阅读 · 0 评论