算法

KMP算法与前缀函数实例讲解

KMP算法与前缀函数(一)前缀函数一个字符串s的border是一个最长的字符串,且既是s的后缀,又是s的真前缀。给定长为n的字符串s,其前缀函数定义为一个长为n的数组π。其中π[i]为s的第i个前缀的border长度。(二)KMP算法全称为Knuth-Morris-Pratt算法,

字典树(trie)/前缀树(Prefix Tree)实例讲解

对于字典树/前缀树可能大部分情况很难直观或者有接触的体验,尤其是对前缀这个玩意没啥概念,可能做题遇到前缀问题也是使用暴力匹配蒙混过关,如果字符串比较少使用哈希表等结构可能也能蒙混过关,但如果字符串比较长、相同前缀较多那么使用字典树可以大大减少内存的使用和效率。

字符串匹配实例讲解

本篇主要讲字符串匹配以及字符串算法中三个主要算法的一些内容,帮助大家理解。一、基本概念字符串匹配问题假设文本是一个长度为n的数组T[1…n],而模式是一个长度为m的数组P[1…m],其中m≤n,进一步假设P和T的元素都是来自一个有限的字母集∑的字符。

C++标准库中的字符串

一、C++字符串C++提供了以下两种类型的字符串表示形式:(1)C风格字符串(2)C++引入的string类类型二、C风格字符串C风格的字符串起源于C语言,并在C++中继续得到支持。字符串实际上是使用null字符\0终止的一维字符数组。因此,一个以null结尾的字符串,包含了组成字符串的字符。

C语言标准库中的字符串

一、字符串操作<string.h>size_tstrlen(charconst*s);注意:返回值类型size_t是无符号类型,和int进行运算或比较时需要注意;char*strcpy(char*dst,charconst*src);将src复制到dst,

字符串基础知识

一、什么是字符串?字符串就是多个只读字符组成的数组。为什么说是只读?只读是因为字符串的所有方法都不会改变原字符串,包括通过下标修改,字符串依旧是保持原样。varstr="abcd"console.log(str)//"abcd"str[0]="c"console.log(str)//"abcd"为什么

离散化算法实例讲解

说到离散化,可能很多人不知道这是什么,小编简单给大家介绍一下,后面会详细说明,离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。

什么是数学?

一、什么是数学?数学是研究数量、结构、变化以及空间模型等概念的一门科学。二、数学的特点数学区别于其他学科的明显特点有三个:1.抽象性,2.精确性,3.应用的极端广泛性。三、数学的三个传统领域:1.研究数的理论的代数学,2.研究形的理论的几何学,

什么是计算几何?

一、计算几何的引入计算几何是几何学的一个重要分支,也是计算机科学的一个分支,研究解决几何问题的算法。在现代工程与数学、计算机图形学、机器人学、VLSI设计、计算机辅助设计等学科领域中,计算几何都有重要应用。计算几何问题的输入一般是关于一组几何物体(如点、线)的描述;输出常常是有关这些物体相关问题的回答

DP优化(三)四边形不等式优化实例讲解

有一种DP可以写成四边形不等式,那么可以用一个优化来优化这种DP(一般是二维的,不加优化是O(n3))。如果a≤b≤c≤d,那么如果DP式子满足f(a,c)+f(b,d)≤f(b,c)+f(a,d),那么这就是一个四边形不等式。一、首先先看一道例题题目:有一群人要乘船,