• 2024-07-02字符串
    之前就是史,重新来写,字符串还是有必要学的。KMP用于文本串匹配。其和暴力的区别在于失配后会从一个特定位置重新开始匹配而不是从头开始,从而节约时间。这个失配数组也就是\(nex_i\)表示\(S[\mathbf{1}\dotsi]\)的最长\(\mathtt{border}\)长度,建出来之后相当于一个自动机
  • 2024-07-01【算法探秘】无重复字符的最长子串:解锁字符串中的独特风景
    【算法探秘】无重复字符的最长子串:解锁字符串中的独特风景一、引言:在字符的海洋中航行二、技术概述:独步字符森林技术定义核心特性代码示例:初尝甜蜜果实三、技术细节:拨开迷雾,洞悉本质原理解析难点剖析四、实战应用:字节跳跃,解密信息应用场景案例展示五、优化与改进:精益
  • 2024-07-01最小覆盖子串
    给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保
  • 2024-06-23Rabin Karp 算法
    RabinKarp算法RabinKarp算法,简称RK算法,是由MichaelOserRabin和RichardManningKarp在1987年提出的字符串搜索算法。该算法主要用于在文本中搜索单个模式串的位置,其基于哈希函数的原理,将字符串和模式都映射为一个整数值,并通过比较这些整数值来确定它们是否匹
  • 2024-06-23「动态规划」如何解决单词拆分问题?
    139.单词拆分https://leetcode.cn/problems/word-break/description/给你一个字符串s和一个字符串列表wordDict作为字典。如果可以利用字典中出现的一个或多个单词拼接出s则返回true。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。输入:s="leetcode
  • 2024-06-23647. 回文子串(leetcode)
    647.回文子串(leetcode)题目描述给你一个字符串s,请你统计并返回这个字符串中回文子串的数目。回文字符串是正着读和倒过来读一样的字符串。子字符串是字符串中的由连续字符组成的一个序列。示例1输入:s=“abc”输出:3解释:三个回文子串:“a”,“b”,“c”
  • 2024-06-22后缀自动机 SAM
    1概述及定义后缀自动机(SAM)是一个强有力的数据结构,可以解决很多经典字符串问题,例如:线性复杂度进行字符串匹配。线性复杂度求出一个字符串的所有不同子串个数。那么我们定义一个字符串\(S\)的SAM是一个可以接受\(S\)所有后缀的最小DFA(确定性有限状态自动机)。也就是说
  • 2024-06-22day09 | KMP算法笔记
    目录一、KMP算法有什么用?二、构建next数组(就是前缀表)1)什么是前缀表(next数组)2)前缀表有什么用3)前缀表怎么记录的?4)为什么一定要用前缀表5)构建next数组三、力扣28.实现strStr()四、拓展题重复的子字符串一、KMP算法有什么用?该算法主要应用在字符串匹配上,当模式串与
  • 2024-06-17进行一个字符串算法的总结
    本文参考字符串基础byAlex_Wei。Manacher算法这玩意是用来求回文子串的。虽然一个字符串的子串数量是\(O(n^2)\)级别的,但是回文串有更好的描述方式。注意到若一个子串\([l,r]\)是以\(mid\)为回文中心的回文串,那么将左端点和右端点朝着\(mid\)方向挪动若干单位也
  • 2024-06-17从零开始学算法/C++/第四天
    昨天参加了百度之星,完全不会写,就写了道差分第一题根据汉诺塔层数和转移次数输出每个圆盘的位置很熟悉,刚学C语言那会儿就学了这个东西,已经忘光光了;大约第三题是求区间中位数,因为只查询一次,差分是比较合适的;大约第四题是括号匹配,WA了四个点,这玩意没写过类似的,还是知识面太窄了,刚
  • 2024-06-16P2336 [SCOI2012] 喵星球上的点名 解题报告
    oj:https://gxyzoj.com/d/gxyznoi/p/P107SA+莫队调了一天,真的心态炸了,总的来说这道题没有一步是好想的首先,看到是多个字符串求一个是另一个子串,显然想到,讲这些字符串拼接起来,因为姓和名不能连在一起,所以可以在他们中间加一个没有出现的数字接下来,首先考虑第一个问题在拼接完后
  • 2024-06-16代码随想录算法训练营第六十天 | 647. 回文子串、516.最长回文子序列
    647.回文子串文字讲解:代码随想录视频讲解:动态规划,字符串性质决定了DP数组的定义|LeetCode:647.回文子串_哔哩哔哩_bilibili解题思路1.dp[i][j]     [i,j]子串是否是回文的      是则返回true,不是则返回false2.递推公式if(s[i]==s[j])   
  • 2024-06-16华为OD机试C卷(100分)-字符串分割(二)(C语言)
    题目描述给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;反之,如果它含有的大写字母比
  • 2024-06-16华为OD机试C卷(100分)-连续字母长度(C语言)
    题目描述给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第k长的子串的长度,相同字母只取最长的那个子串。输入描述第一行有一个子串(1<长度<=100),只包含大写字母。第二行为k的值输出描述输出连续出现次数第k多的字母的次数。用例输入AAAAHHHBBCDHHH
  • 2024-06-16华为OD刷题C卷 - 每日刷题30(小明找位置,分隔均衡字符串)
    1、(小明找位置):这段代码是解决“小明找位置”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于帮助小明快速找到他在排队中应该站的位置。main方法首先读取已排列好的小朋友的学号数组和小明的学号,然后调用getResult方法并打印小明应该站的位置。getRe
  • 2024-06-15最长回文子串
    给你一个字符串 s,找到 s 中最长的回文子串。publicclassSolution{publicStringlongestPalindrome(Strings){intlen=s.length();if(len<2){returns;}intmaxLen=1;intbegin=0;
  • 2024-06-12CF717G Underfail
    传送门传说之下欧耶题意:给出一个长度\(n\)的字符串\(s\)。有\(m\)个单词\(p_1\simp_m\),每一个有价值\(a_i\)。用这\(m\)个单词和\(s\)中的一些子串匹配,要求\(s\)的每个字符匹配次数\(\lex\),每个子串最多匹配一次。每匹配上一个单词,总收益加上对应的价值。问
  • 2024-06-11pta最长对称子串
    直接双指针枚举,然后直接用stl(hh)includeincludeincludeusingnamespacestd;strings;intres=1;intmain(){charc;while(scanf("%c",&c)!=EOF){s.push_back(c);}for(inti=0;i<s.size();i++){for(intj=i+1;j<s.size();j++){stri
  • 2024-06-082024华为OD机试真题-字符串分割(二)-(C++/Python)-C卷D卷-100分
    2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有
  • 2024-06-08华为OD刷题C卷 - 每日刷题 17(字符串序列判定,最长的指定瑕疵度的元音子串)
    1、(字符串序列判定):这段代码是解决“字符串序列判定”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于判断字符串S是否是字符串L的有效子串。main方法首先读取两个字符串S和L,然后调用getResult方法并打印最后一个有效字符在L中的位置。getResult方法
  • 2024-06-07Q13 LeetCode76 最小覆盖子串
    1.难题2.need.containsKey(r)看hashmap中是否含有r3.明天再复盘一遍  1classSolution{2publicStringminWindow(Strings,Stringt){3if(s==null||s.isEmpty()||t==null||t.isEmpty()||s.length()<t.length())return"";4
  • 2024-06-07算法题-无重复字符的最长子串
    学习目标:无重复字符的最长子串leetcode原题链接学习内容:给定一个字符串s,请你找出其中不含有重复字符的最长连续子字符串的长度。示例1:输入:s=“abcabcbb”输出:3解释:因为无重复字符的最长子字符串是“abc”,所以其长度为3。示例2:输入:s=“
  • 2024-06-06CF1234F Yet Another Substring Reverse
    CF1234FYetAnotherSubstringReverse状压dp+高维前缀和一个很显然的发现是最长子串长度不会超过字符集。那么如果没有这个操作,是很简单的,我们看看多了这个操作意味着什么。对于一个子串,考虑一次翻转对它的影响。在它内部的翻转肯定是没有意义的;我们一定有一个操作能将任意
  • 2024-06-062道寻找回文子串的题目
    题目题目1题目2题目1是将字符串分隔,使得分隔后得到的每个字符串都是回文子串题目2是从字符串里面找到回文子串两道题都可以利用递归来解决//利用双指针判断是否是回文子串boolisre(string&s){ intleft=0; intright-s.size()-1; while(left<=right) {
  • 2024-06-06最小覆盖子串
    Problem:76.最小覆盖子串目录思路解题方法复杂度Code思路滑动窗口很简单解题方法滑动窗口复杂度时间复杂度:添加时间复杂度,示例:$O(n)$空间复杂度:添加空间复杂度,示例:$O(n)$CodefuncminWindow(sstring,tstring)string{ result:="" //剔