自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 字符串匹配:从朴素算法到KMP

摘要 本文深入解析KMP字符串匹配算法的原理与实现。相比朴素算法逐个字符匹配的低效性,KMP算法通过预处理模式串的最长前缀后缀(LPS)表,利用匹配失败时的部分匹配信息实现智能跳转。文章详细阐述了LPS的定义与构建方法,通过模式串"GOOGLEGOOD"等实例演示如何利用字符串自重复性优化匹配过程。核心在于当匹配失败时,根据LPS表将模式串指针回退到可能匹配的位置,避免不必要的比较。伪代码展示了LPS表构建和匹配过程的实现细节,体现了KMP算法如何通过O(n+m)的时间复杂度实现高效匹配

2025-10-15 01:11:06 801

原创 C语言实现STL:vector(动态数组)

C语言实现动态数组的原理并不复杂,只需要实现数组元素的插入和删除、随机访问以及根据当前数组内元素数量自动调整数组占用内存大小的功能即可。唯一的难点在于存储不同类型的数据。C++ STL中的vector利用了C++的模板功能,能够存储任意类型数据,而想要在C语言中实现类似的功能,就需要利用到void*指针。void*指针只存储一个地址,而不关心这个地址内存储的数据类型,因此我们只需要按照不同数据类型的字节数来访问void*中的数据。例如,如果我们要动态分配一块内存给一个int数组,常规做法就是使用。

2024-10-31 11:20:52 1074

原创 【动态规划】[NOIP2002 普及组] 过河卒

[NOIP2002 普及组] 过河卒,动态规划问题

2024-05-23 17:58:22 1504 2

原创 【Qt/C++】关于.txt文件读取时的乱码问题

Qt/C++中文乱码问题的可能解决方案

2024-05-23 16:47:09 1116 1

原创 【Linux】命令行常用命令

简单介绍linux命令行常用命令,包括ls、cd、cp、mv、rm等等

2024-05-13 21:21:23 442 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除