随笔分类 - 字符串
摘要:Problem 有一个字符串S,求S最少可以被划分为多少个回文串。 例如:abbaabaa,有多种划分方式。 a|bb|aabaa - 3 个回文串 a|bb|a|aba|a - 5 个回文串 a|b|b|a|a|b|a|a - 8 个回文串 其中第1种划分方式的划分数量最少。 Solution 先
阅读全文
摘要:Problem 一个字符串t是半回文的条件是,对于所有的奇数𝑖(1≤𝑖≤|𝑡|+12),𝑡𝑖 = 𝑡|𝑡| − 𝑖 + 1 始终成立,|t|表示字符串t的长度。下标从1开始。例如"abaa", "a", "bb", "abbbaa"都是半回文,而"ab", "bba"和"aaabaa
阅读全文
摘要:Problem 小b有一个字符串S和n个字符串words[1...n],现在她想知道有多少个i满足words[i]是S的子序列。 S的长度≤50000,1≤n≤5000,words[i]长度≤50. 样例解释 a,acd,ace都是abcde的子序列,但bb不是。 Solution 存一下s各个字母
阅读全文
摘要:在阅读这篇文章之前,我们假定你已经掌握了 "KMP:n+1次探" 里的定义。 引入:扩展KMP是干什么的 扩展KMP解决的是源串S的每一个后缀与模式串P的最长公共前缀的长度的问题,并求解出答案extend数组,例如,ababac与aba的extend数组是3 0 3 0 1 0,这里extend[i
阅读全文
摘要:如你所见,这是我不知道第几次学KMP了。 推荐B站上电子科大的字符串专题。 引入:KMP是干什么的 KMP解决的是模式串P在源串T中出现次数的问题,比如模式串P为aba,源串为abababa,我们可以求出计算重叠的出现次数3,还可以求出不计算重叠的出现次数2。 next数组 [x] 最好不要用nex
阅读全文
摘要:题目描述 给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。 输入 输入只有1组数据。 输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。 输出 删除输入的短字符串(不区分大小写)并去掉空格,输出。 样例输入 in include int main()
阅读全文
摘要:俗称马拉车算法→_→ 处理最长回文字串复杂度O(n) 这里菜鸡不会证,简单说一下思路。 由于回文串有奇有偶,所以将串之间和两边加上'#',为了防止后面某个地方超边界,新串0位置加上$。这样每个回文子串为#a#b#a#形式,必定奇数个,且原子串长度为新字串半径减一,求这个半径p[i]。(即p[i]是以
阅读全文

浙公网安备 33010602011771号