- 2024-11-21字符串的基本操作(C语言版)
字符串的判断、查找字符串并返回查找结果一、编写函数:采用顺序结构存储串,编写一个函数substring(strl,str2),用于判定str2是否为strl的子串;编写一个函数,实现在两个已知字符串中找出所有非空最长公共子串的长度和最长公共子串的个数;二、代码演示:1、字符串匹配的源代码:#
- 2024-11-18NFLS 字符串题单笔记(未完结)
POI2010Antisymmetry对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一样,就称作“反对称”字符串。比如00001111和010101就是反对称的,1001就不是。现在给出一个长度为N的01字符串,求它有多少个子串是反对称的。manacher板子,写就完了#include<bits/stdc++.
- 2024-11-17最小覆盖子串
最小覆盖子串题目给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我们保证
- 2024-11-153. 无重复字符的最长子串
题目链接解题思路子串问题,思考,「以i开头」结果是什么,求出所有的结果,然后最长的那个就是答案。或者「以i结尾」结果是什么,求出所有的结果,最长的那个就是答案。本题使用「以i开头」结果是什么。当求出i开头的结果是[i,j],那么怎么求i+1的结果?其实就是滑动窗口。现在的窗口
- 2024-11-14代码随想录算法训练营day46| 647. 回文子串 516.最长回文子序列
学习资料:https://programmercarl.com/0647.回文子串.html#算法公开课动态规划最后一部分:回文字符串子串是从原字符串中连续截取的;子序列可以是从原字符串中不连续提取出元素构成的学习记录:647.回文子串(难构造dp数组,dp数组是从原字符串截取[i,j]范围的片段是否是回文字符串,布尔
- 2024-11-13求最长公共子串的两种解法
描述给定两个字符串str1和str2,输出两个字符串的最长公共子串题目保证str1和str2的最长公共子串存在且唯一。 数据范围: 1≤∣str1∣,∣str2∣≤50001≤∣str1∣,∣str2∣≤5000要求:空间复杂度 O(n2),时间复杂度 O(n2)实例:输入:"1AB2345CD","12345EF"返回值:"2345"备
- 2024-11-1176. 最小覆盖子串
题目链接解题思路求最小子串问题,第一时间,想「以i开头的结果是什么」,求出所有的结果,最优的便是;或者「以i结尾的结果是什么」,求出所有的结果,最优的便是这个题使用「以i开头的结果是什么」,假设是[i,j]然后再求i+1的结果时,我们发现,只需要把i位置的字符去掉,就可以知道是否满足
- 2024-11-09算法求解(C#)-- 寻找包含目标字符串的最短子串算法
1.引言在字符串处理中,我们经常需要从一个较长的字符串中找到包含特定目标字符串的最短子串。这个问题在文本搜索、基因序列分析等领域有着广泛的应用。本文将介绍一种高效的算法来解决这个问题。2.问题描述给定一个源字符串source和一个目标字符串target,我们需要找
- 2024-11-09找到字符串中所有字母异位词
找到字符串中所有字母异位词题目给定两个字符串s和p,找到s中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。示例示例1:输入:s="cbaebabacd",p="abc"输出:[0,6]解释:起始索引等于0的子串是"cba",它是"abc"的异位词。起始索
- 2024-11-08普及 SAM
参考了一些博客,如有侵权,请告知。内部资料,包不外传。定义后缀自动机(SAM)的结构包含两部分,有向无环单词图(DAWG)和parent树。SAM中的每个节点都同时存在于这两个结构中。以下假设我们是关于字符串\(s\)的SAM。DAWGDAWG是一个DAG。我们令起始结点为\(st\),\(st\)在DAWG
- 2024-11-07【算法】动态规划
一、算法概念动态规划算法是一种解决多阶段决策问题的方法。它将一个问题分解为多个子问题,并逐个求解子问题的最优解,最后得到原问题的最优解。二、基本思想动态规划算法的核心思想是通过存储中间结果来避免重复计算。在解决问题的过程中,会利用已经求解过的子问题的最优解
- 2024-11-07CF Round 984 C. Anya and 1100(模拟)
传送门https://codeforces.com/contest/2036/problem/C解题思路先扫一遍字符串,判断有几个1100子串。然后,对于每一次操作,可以算出对答案的影响,减去更改会减少的子串,再加上更改后会增加的子串。代码#include<bits/stdc++.h>usingnamespacestd;chars[200001];intq
- 2024-11-06无重复字符的最长子串
题目给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。leetcode链接示例示例1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。示例2:输入:s="bbbbb"输出:1解释:因为无重复字符的最长子串是"b",所以
- 2024-10-31NOIP2015 提高组 子串
NOIP2015提高组子串感觉是最长公共子序列模型的变式。容易想到记\(f[i][j][k]\)表示\(A\)走到了第\(i\)位,\(B\)匹配上了\(1\simj\),目前分成了\(k\)段的方案数。如果强制第\(i\)位必须匹配上的话,需要枚举位置\(p\),满足\(A[p]=B[j-1]\)。这样的复杂度是\(
- 2024-10-30LeetCode30.串联所有单词的子串
题目链接:30.串联所有单词的子串-力扣(LeetCode)1.暴力解法(会超时)由于题目中要判断s中是否有子串符合words,于是可以定义一个hashMap来存储words中的字符串的信息;定义变量len表示words中字符串的数目,strLen表示每个字符串的长度(words中的字符串长度相同);遍历s,每次取出长为len
- 2024-10-30华为OD机试 E卷|连续字母长度
华为OD机试E卷|连续字母长度0、关于本专栏&刷题交流群本文收录于专栏【2024华为OD机试真题】,专栏共有上千道OD机试真题,包含详细解答思路、与四种代码实现(Python、Java、C++、JavaScript)。点击文末链接加入【华为OD机试交流群】,和群友一起刷题备考。刷的越多,考试中遇到原题的
- 2024-10-30华为OD机试 E卷|字符串分割转换
华为OD机试E卷|字符串分割转换0、关于本专栏&刷题交流群本文收录于专栏【2024华为OD机试真题】,专栏共有上千道OD机试真题,包含详细解答思路、与四种代码实现(Python、Java、C++、JavaScript)。点击文末链接加入【华为OD机试交流群】,和群友一起刷题备考。刷的越多,考试中遇到原题的
- 2024-10-30算法学习笔记6: 字符串
字符串字符串哈希通过求解字符串前缀的哈希值的方式,可以比较字符串内任意字串的相等情况。首先需要把每个字符映射成数字,是什么无所谓(因为字符不好计算哈希值呀),然后类似于计算前缀和的方式,这里是计算h[i]表示前i个字符的哈希值。然后把要计算的每个前缀字符串看作是一个P
- 2024-10-283. 无重复字符的最长子串(中)
目录题目题解:滑动窗口题目给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3示例2:输入:s="pwwkew"输出:3解释:因为无重复字符的最长子串是"wke",所以
- 2024-10-26马拉车算法(回文子串长度)
#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintMax=100000;chars[Max*2+5];charstr[Max*2+5];intdp[Max*2+5];voidmc(){intn=strlen(s+1);str[0]='s';intj=1;for(inti=1;i<=n;i++){str[j++]='#
- 2024-10-25【优选算法】——滑动窗口(下篇)
目录1、水果成篮2、找到字符串中所有字母异位词3、串联所有单词的子串4、最小覆盖子串1、水果成篮你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。你想要尽可能多地收集水果
- 2024-10-24【每日一题】LeetCode - 最长回文子串
在字符串相关的算法题中,寻找最长回文子串是一个经典且富有挑战性的题目。本篇将详细分析并推导两种有效的解决方案:动态规划法和中心扩展法。题目描述给定一个字符串s,我们需要找到s中最长的回文子串。回文是指正着读和反着读都相同的字符串。例如,输入"babad"时,输出可
- 2024-10-23字符串优化
字符串问题\(\mathcalO(nm)-\mathcalO(1)\)比较字符串子串大小令\(lcp_{x,y}=\operatorname{lcp}(s[x\simn],s[y\simn])\),有\[lcp_{x,y}=\left\{\begin{aligned}&lcp_{x+1,y+1}+1&&s_x=s_y\\&0&&s_x\not=s_y\end{aligned}\right.\]
- 2024-10-22八重回文划分法:最多/最少 回文/非回文 子序列/子串 划分
只考虑常数字符集,所以关于字符集的复杂度都没算进来。最少非回文子串划分答案是\(1\)或\(2\)或者无解,参考CF1951E的题解。时间复杂度:\(\mathcalO(n)\)。最少非回文子序列划分考虑最少非回文子串划分的情况,可以发现答案是\(2\)的情况也不可能划分成\(1\)个子序列,所