一、学习要点:
1.KMP算法思路了解:https://www.bilibili.com/video/av3246487?from=search&seid=11009544750632580740
2.KMP完整代码实现视频:
https://www.bilibili.com/video/av16828557/?spm_id_from=333.788.videocard.2
3.完整代码实现可运行版,参考:https://blog.csdn.net/xiaoquantouer/article/details/62444741
二、代码

#include<iostream>
#include<stdlib.h>
#include<string>
#include<vector>
using namespace std;
vector<int> getNe(string ss)
{int n = ss.size();vector<int> next(n);int k = 0;for (int i = 1; i < n; i++){while (k != 0 && ss[k] != ss[i]){k = next[k - 1];}if (ss[k] == ss[i]){next[i] = ++k;}else{next[i] = k;}}return next;
}
int KMP(string str, string ss)
{int n = str.size();int m = ss.size();vector<int> next = getNe(ss);for (int i = 0,k=0; i &

KMP的c语言实现和学习相关推荐

  1. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

  2. 这才是你需要的C语言、C++学习路线!

    来源:CodeSheep 本文约2500字,建议阅读10分钟 除了编程语言以外,其实还有很多... 小伙伴们,大家好! 关于C语言和C++的学习路线终于梳理完了.当然我也只能从我曾经近3年的通信公司后 ...

  3. 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)

    学习者:骆栢维 题目来源:生信基石之R语言 中级10 个题目:http://www.bio-info-trainee.com/3750.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...

  4. 《Go语言圣经》学习笔记 第十一章 测试

    <Go语言圣经>学习笔记 第十一章 测试 目录 go test 测试函数 测试覆盖率 基准测试 剖析 示例函数 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语 ...

  5. 《Go语言圣经》学习笔记 第十章 包和工具

    <Go语言圣经>学习笔记 第十章 包和工具 目录 包简介 导入路径 包声明 导入声明 包的匿名导入 包和命名 工具 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. G ...

  6. 《Go语言圣经》学习笔记 第九章 基于共享变量的并发

    <Go语言圣经>学习笔记 第九章 基于共享变量的并发 目录 竞争条件 sync.Mutex互斥锁 syn.RWMutex读写锁 内存同步 syn.Once初始化 竞争条件检测 示例:并发的 ...

  7. 《Go语言圣经》学习笔记 第八章 Groroutines和Channels

    <Go语言圣经>学习笔记 第八章 Groroutines和Channels 目录 Goroutines 实例:并发的Clock服务 实例:并发的Echo服务 Channels 并发的循环 ...

  8. 《Go语言圣经》学习笔记 第六章 方法

    <Go语言圣经>学习笔记 第六章 方法 目录 方法声明 基于指针对象的方法 通过嵌入结构体来扩展类型 方法值和方法表达式 示例:Bit数组 封装 注:学习<Go语言圣经>笔记, ...

  9. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

最新文章

  1. RzPageControl 关闭按钮
  2. MySQL下载与配置
  3. c#实现多线程代码例子
  4. show profile 分析SQL
  5. mysql主从数据库设计_mysql数据库主从库镜像原理及配置
  6. 一步步编写操作系统 50 加载内核3
  7. org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:
  8. 1081. Rational Sum (20) -最大公约数
  9. linux强制使用windows命名,如何强制Windows重命名带有特殊字符的文件?
  10. Logan:美团点评的开源移动端基础日志库
  11. linux与linux传文件乱码,关于Linux与windows传递文件乱码问题
  12. 第八章节 文件操作一 (文件常用操作)
  13. cad查看_CAD干货:手把手教你如何在手机上查看CAD图纸,赶紧了解一波~
  14. 抖音视频如何去除水印
  15. COMMENT的简单介绍,,及在Navicat中COMMENT的使用方法
  16. Python学习之【Django】
  17. think python 第9章 case study:word play
  18. SM敏捷实践经验总结
  19. 这么多时光,网络中我是个过客
  20. macOS Monterey(版本12.6.3)使用iTunes

热门文章

  1. boost::hana::ext::std::vector_tag用法的测试程序
  2. GDCM:gdcm::ImplicitDataElement的测试程序
  3. BOOST_TEST_GT和BOOST_TEST_GE的用法
  4. VTK:可视化之AnnotatedCubeActor
  5. Qt Creator将纹理附加到材质
  6. Qt Creator添加动态dynamics
  7. Qt Creator用户界面
  8. C++ 预处理命令#和##用法
  9. django 不用自带的mysql_21_django配置使用mysql数据库的两种方式
  10. 「ProtocolBuffers2」ProtocolBuffers2 c++简易入门