• 2025-01-03Luogu P4287 SHOI2011 双倍回文 题解 [ 紫 ] [ manacher ]
    双倍回文:回文子串结论的经典应用。结论先放本题最关键的结论:一个字符串本质不同的回文子串最多只有\(n\)个。考虑如何证明:假设我们一个一个地在当前字符串(黑色部分)的结尾加入字符(红色部分),那么会出现如下情况:显然,加入红色字符后,字符串中最多只可能新出现一个本质不同的回文
  • 2025-01-01分割回文串(回溯)
    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]classSolution{public:vector<vector
  • 2024-12-31吃透LeetCode 159:至多包含两个不同字符的最长子串
    开篇:刷题党必看!在算法学习的江湖里,LeetCode可是众多程序员的“练武场”,其重要性不言而喻。从初出茅庐的新手,到经验丰富的技术大拿,大家都热衷于在这个平台上切磋算法技艺,提升编程功力。这里汇聚了各种巧妙构思的算法题,堪称是检验我们编程能力的“试金石”。而掌握经典题目的解
  • 2024-12-30[BZOJ3230] 相似子串 题解
    \(\text{[BZOJ3230]相似子串题解}\)巧妙地利用了后缀数组的一些奇妙性质。先考虑第一问。首先去处理本质不同的子串这个东西。这个东西我们显然是见过的,于是套路地建出SA求出\(\operatorname{height}\)数组。每一个子串对应的都是一个后缀的前缀。由于串都是本质不同的,那
  • 2024-12-29[算法/数据结构]系列 华为面试原题:和为n的子串(前缀和+哈希表)
    [算法/数据结构]系列华为面试原题:和为n的子串(前缀和+哈希表)文章目录[算法/数据结构]系列华为面试原题:和为n的子串(前缀和+哈希表)面试原题样例分析代码及思路面试原题输入一串只有0和1的数组,返回输入和为n的子串的个数。样例:输入:[011100],n=3输出:6样
  • 2024-12-2825. 求满足条件的最长子串的长度
    给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:1、只包含1个字母(a~z,A~Z),其余必须是数字;2、字母可以在子串中的任意位置;如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。输入描述:字符串(只包含字母和
  • 2024-12-28文章评分2
    zz:https://blog.csdn.net/Y_sofun/article/details/74502970nodgd的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了向大家
  • 2024-12-27后缀数组(SA)
    后缀数组(SA)本文参考OIWiki。后缀数组(SuffixArray)主要关系到两个数组:\(sa\)和\(rk\)。我们称后缀\(i\)表示后缀\([i,n]\)。其中\(sa_i\)表示排名为\(i\)的后缀是什么,\(rk_i\)表示后缀\(i\)的排名。\(sa\)和\(rk\)是互逆的。字符串比较规则是逐位比较,空位小
  • 2024-12-26讲解串与子串
    串与子串一、串(字符串)二、子串三、区别:串与子串四、求串中子串的个数1.如何计算子串的个数2.公式总结3.举例说明4.算法实现5.复杂度分析总结五、扩展:子串vs子序列六、总结一、串(字符串)定义:串是一系列字符按照一定顺序组成的有限序列。例如:串"hell
  • 2024-12-263083. 字符串及其反转中是否存在同一子字符串
    给你一个字符串s,请你判断字符串s是否存在一个长度为2的子字符串,在其反转后的字符串中也出现。如果存在这样的子字符串,返回true;如果不存在,返回false。示例1:输入:s="leetcode"输出:true解释:子字符串"ee"的长度为2,它也出现在reverse(s)=="edocteel"中。示例2
  • 2024-12-26505 最长回文子串2
    //505最长回文子串2.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/698给定一个长度为n的数组a1,a2,…,an,问其中的最长回文子串长度。定义子串al,al+1,…,ar为回文子串,当且仅当这个子串正着看和反着看是
  • 2024-12-25003. 字符串的展开(牛客NOIP2007)
    003.字符串的展开(牛客NOIP2007)题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或“4-8”的子串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“de
  • 2024-12-25401 最长回文子串
    //401最长回文子串.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/933给你一个字符串s,字符串由小写字母组成,现在你需要求出s中最长的回文子串的长度。输入格式一行一个字符串s。输出格式输出一个整
  • 2024-12-25小U的好字符串
    问题描述小U定义了一个“好字符串”,它的要求是该字符串中不包含任意长度不小于2的回文子串。现在小U拿到了一个字符串,她想知道有多少个非空的子序列是“好字符串”。你的任务是帮助她计算出这些子序列的数量。例如,对于字符串 "aba",它的子序列中除了 "aa" 和 "aba" 以外,
  • 2024-12-2476. 最小覆盖子串
    题目链接解题思路:以i开头,最小覆盖子串是什么,然后求出所有的结果,最小的便是。先求出i的结果,是[i,j],然后求i+1时,直接从j后遍历即可。窗口的思想,窗口在[i,j],然后来到i+1,先把i弹出去,弹出去的前提是,s[i]是我们需要的字符。然后再看[i+1,j]是否满足,如果不满足,右边界再继续扩
  • 2024-12-23最小覆盖子串
      滑动窗口算法的思路是这样:1、我们在字符串S中使用双指针中的左右指针技巧,初始化left=right=0,把索引左闭右开区间[left,right)称为一个「窗口」。2、我们先不断地增加right指针扩大窗口[left,right),直到窗口中的字符串符合要求(包含了T中的所有字符)
  • 2024-12-23【字符串】-Lc5-最长回文子串(中心扩展法)
    写在前面  最近想复习一下数据结构与算法相关的内容,找一些题来做一做。如有更好思路,欢迎指正。目录写在前面一、场景描述二、具体步骤1.环境说明2.代码写在后面一、场景描述  最长回文子串。给你一个字符串s,找到s中最长的回文子串。定义:如果字符串的反
  • 2024-12-20【字符串匹配算法——BF算法】
  • 2024-12-19459_重复的子字符串
    Leetcode459重复的子字符串问题描述给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。1.示例1:-输入:s="abab"-输出:true-解释:可由子串"ab"重复两次构成。2.示例2:-输入:s="aba"-输出:false3.示例3:-输入:
  • 2024-12-18最小覆盖子串(滑动窗口)
    给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。   注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的
  • 2024-12-18找到字符串中所有字母异位词
    给定两个字符串 s 和 p,找到 s 中所有 p 的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。示例 1:输入:s="cbaebabacd",p="abc"输出:[0,6]解释:起始索引等于0的子串是"cba",它是"abc"的异位词。起始索引等于6的子串是"bac",它是"abc
  • 2024-12-16string字符串比较/字符存取/插入和删除/子串获取
    示例:#include<iostream>usingnamespacestd;#include<string>#include<vector>#include<algorithm>//标准算法的头文件//字符串比较voidtest01(){stringstr1="xello";stringstr2="hello";if(str1.compare(s
  • 2024-12-165. 最长回文子串
    题目链接解题思路:最长回文子串问题,首先要将原字符串扩充,比如abba,暴力是以每个字符s[i],左右两边扩,如果是abba,得不到最优解,扩充成#a#b#b#a#,就不会有问题,最优解是manacher算法。假设s[i]扩充的区域是[x,y],是目前便利到的,最远的距离,我们称i为回文中心C,y为回文最远右边界R,同时,
  • 2024-12-16代码随想录算法训练营第四十六天|leetcode647. 回文子串、leetcode516.最长回文子序列
    1leetcode647.回文子串题目链接:647.回文子串-力扣(LeetCode)文章链接:代码随想录视频链接:动态规划,字符串性质决定了DP数组的定义|LeetCode:647.回文子串哔哩哔哩bilibili思路:嘿,看不懂有一点,看解析吧1.1视频后的方法其实看完视频以后,感觉这个题目真的不难,我想到了二维
  • 2024-12-163. 无重复字符的最长子串
    题目链接解题思路:最长子串问题,考虑,以i开头的结果如何,以i结尾的结果如何,最终结果必定在其中。本题使用以i开头的结果如何,我们求出所有的「以i开头的最长子串」,再求出最长的即可。求「以i开头的最长子串」,最简单的暴力即可,那么怎么加速呢?我们在求「以i-1开头的最长子长串时