C++标准库中的字符串 一、C++字符串C++提供了以下两种类型的字符串表示形式:(1)C风格字符串(2)C++引入的string类类型二、C风格字符串C风格的字符串起源于C语言,并在C++中继续得到支持。字符串实际上是使用null字符\0终止的一维字符数组。因此,一个以null结尾的字符串,包含了组成字符串的字符。 字符串相关 2022年02月05日 170 点赞 0 评论 61314 浏览
字符串匹配实例讲解 本篇主要讲字符串匹配以及字符串算法中三个主要算法的一些内容,帮助大家理解。一、基本概念字符串匹配问题假设文本是一个长度为n的数组T[1…n],而模式是一个长度为m的数组P[1…m],其中m≤n,进一步假设P和T的元素都是来自一个有限的字母集∑的字符。 字符串相关 2022年01月25日 213 点赞 0 评论 91934 浏览
字典树(trie)/前缀树(Prefix Tree)实例讲解 对于字典树/前缀树可能大部分情况很难直观或者有接触的体验,尤其是对前缀这个玩意没啥概念,可能做题遇到前缀问题也是使用暴力匹配蒙混过关,如果字符串比较少使用哈希表等结构可能也能蒙混过关,但如果字符串比较长、相同前缀较多那么使用字典树可以大大减少内存的使用和效率。 字符串相关 2022年01月16日 106 点赞 0 评论 95420 浏览
KMP算法与前缀函数实例讲解 KMP算法与前缀函数(一)前缀函数一个字符串s的border是一个最长的字符串,且既是s的后缀,又是s的真前缀。给定长为n的字符串s,其前缀函数定义为一个长为n的数组π。其中π[i]为s的第i个前缀的border长度。(二)KMP算法全称为Knuth-Morris-Pratt算法, 字符串相关 2022年01月06日 241 点赞 0 评论 83298 浏览
Boyer-Moore算法图文讲解 说到Boyer-Moore算法,它是一个字符串算法,这个算法追求的就是每次匹配,一般发现失败了,要往前移动尽可能多的距离,少算一点是一点。为了实现这个目标,首先算法选择的就是从pattern的尾部开始算。这个时候就会出现若干种情况。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。 字符串相关 2022年05月14日 237 点赞 0 评论 106391 浏览
KMP和Z函数 KMP和Z函数,首先要先了解什么是KMP,把KMP了解了,使用Z函数就能更加顺手。很多人初次接触KMP的时候,思路很容易混乱,导致写出来的程序也很混乱。Knuth-Morris-Pratt字符串查找算法,简称为“KMP算法”,常用于在一个文本串S内查找一个模式串P的出现位置, 字符串相关 2022年02月16日 210 点赞 0 评论 86582 浏览
自动机(确定有限状态自动机) 这里的“自动机”指的是”确定有限状态自动机”。而自动机是信息学奥林匹克竞赛、计算机科学中被广泛使用的一个数学模型,其思想在许多字符串算法中都有涉及,学习自动机有助于理解上述算法,但是学习自动机前一定要先了解基础图论的相关知识,这样才更好理解自动机。 字符串相关 2022年05月12日 91 点赞 0 评论 119914 浏览
什么是AC自动机? AC自动机,我知道很多人看到这个会十分好奇,不过这个自动机它又叫做Automaton。我相信大家在初学自动机相关内容时,许多人难以建立对自动机的初步印象,尤其是在自学的时侯。让我们切入正题,通过这段时间对自动机的研究,然后制作若干的gif,已经可以呈现出一个相对直观的自动机形态, 字符串相关 2022年03月09日 175 点赞 0 评论 95558 浏览
什么是后缀树? 说到后缀树,我相信很多人通过名字看出来树是一种结构形态,后缀树就是带后缀的结构,后缀,顾名思义,甚至通俗点来说,就是所谓后缀就是后面尾巴的意思。比如说给定一长度为n的字符串S=S1S2..Si..Sn,和整数i,1≤i≤n,子串SiSi+1...Sn便都是字符串S的后缀。 字符串相关 2022年04月03日 153 点赞 0 评论 91813 浏览
后缀平衡树简介 在我们学习认识后缀平衡树之前,一定要先了解什么是重量平衡树?所谓的重量平衡树是保证操作影响的最大子树大小是最坏的或均摊的或期望的O(logn)。那什么是后缀平衡树?后缀平衡树是一种动态维护后缀排序的数据结构。具体而言,它支持在串S的开头添加/删除一个字符。 字符串相关 2022年04月20日 186 点赞 0 评论 89255 浏览