随笔分类 - [0-D]----字符串
摘要:#include<bits/stdc++.h> #define INF 0x3f3f3f3f #define DOF 0x7f7f7f7f #define endl '\n' #define mem(a,b) memset(a,b,sizeof(a)) #define debug(case,x);
阅读全文
摘要:Trie树 概要: 字典树算法主要是对字符串进行处理,最后形成形如下图的trie树 字典树主要用来查询前缀出现次数,字符串以前缀代表,查找单词,对某个单词的操作和询问 在形成字典树的时候遵循的原则: 1.根节点0不标记如图所示,单词是否出现以单词的下个节点来作为判断如果上所示的'$',实际上也就是每
阅读全文
摘要:题意: 取一字符串不相交的前缀和后缀(可为空)构成最长回文串。 思路: 先从两边取对称的前后缀,之后再取余下字符串较长的回文前缀或后缀。 讲解: 这道题主要是需要考虑的情况太多,比如说只有一个字符的情况下我是用if来判断输出还是用以下这种解法 这个解法的巧妙之处就是在于不用考虑是几个字符,因为在输出
阅读全文
摘要:Manacher算法-又叫马拉车算法 概要: Manacher算法主要用于求最长回文串,在求最长回文串的时候做了处理使长度均变成了奇数 处理方式:s[0]='$',从s[1]开始两边都有其他符号 然后用一个数组 P[i] 来记录以字符S[i]为中心的最长回文子串向左/右扩张的长度(包括S[i],也就
阅读全文
摘要:一:Kmp算法 概要: Kmp算法中nxt数组为重要组成部分,nxt数组所存的内容为:next[i]表示前i个字符组成的子串的最长相同前缀和后缀的长度,要注意应用中提出的nxt[i]变化(方便在匹配两个字符串时候跳动减少时间复杂度) nxt数组模板: 以i=1为起点的字符串进行处理 void get
阅读全文

浙公网安备 33010602011771号