kmp算法模板

简介: 临近期末了,要开始复习了,先复习一下数据结构的kmp算法吧

临近期末了,要开始复习了,先复习一下数据结构的kmp算法

求next数组的代码

void Getnext(string t)
{
  int j = 0, k = -1;
  nex[0] = -1;
  while (j < t.length())
  {
    if (k == -1 || t[j] == t[k])
    {
      j++; k++;
      nex[j] = k;
    }
    else k = nex[k];
  }
}

kmp算法

int kmpmatach(string ms, string ts) {
  int tlen = ts.length();
  for (int i = 0, j = 0; ms[i];) {
    if (j == -1 || ms[i] == ts[j]) {
      if (j == tlen - 1) {
        return i - tlen + 1;  //返回模式串首字符在主串中的位置
      }
      else
        i++, j++;
    }
    else
      j = nex[j];
  }
  return -1;
}
相关文章
|
4月前
|
存储 机器学习/深度学习 算法
KMP、Trie树 、AC自动机‌ ,三大算法实现 优雅 过滤 netty 敏感词
KMP、Trie树 、AC自动机‌ ,三大算法实现 优雅 过滤 netty 敏感词
KMP、Trie树 、AC自动机‌ ,三大算法实现 优雅 过滤 netty  敏感词
|
3月前
|
机器学习/深度学习 监控 算法
局域网行为监控软件 C# 多线程数据包捕获算法:基于 KMP 模式匹配的内容分析优化方案探索
本文探讨了一种结合KMP算法的多线程数据包捕获与分析方案,用于局域网行为监控。通过C#实现,该系统可高效检测敏感内容、管理URL访问、分析协议及审计日志。实验表明,相较于传统算法,KMP在处理大规模网络流量时效率显著提升。未来可在算法优化、多模式匹配及机器学习等领域进一步研究。
89 0
|
6月前
|
算法 安全 搜索推荐
套用算法模板备案审核问题增多的原因及解决建议
随着算法备案要求的完善,企业常因使用网上廉价模板而遭遇审核通过率低、问题增多的困境。本文分析了审核不通过的原因,包括模板缺乏针对性、审核标准严格、审核人员主观差异及企业准备不足等,并提出建议:深入了解备案要求、准备详尽材料、避免通用模板、寻求专业帮助。备案后还需持续合规管理,确保算法服务安全运行。
|
算法
【算法】前缀和——二维前缀和模板题
【算法】前缀和——二维前缀和模板题
106 0
|
算法
数据结构中的KMP算法及其改进算法
KMP算法通过引入部分匹配表,有效避免了重复计算,从而将字符串匹配的时间复杂度降低到O(m+n)。通过进一步优化next数组,KMP算法的效率得到了进一步提升。对于大规模字符串匹配问题,KMP算法及其改进算法提供了高效的解决方案,是计算机科学领域的经典算法之一。
311 3
|
11月前
|
算法
第四章 KMP算法理论基础
第四章 KMP算法理论基础
157 0
|
算法 C++
A : DS串应用–KMP算法
这篇文章提供了KMP算法的C++实现,包括计算模式串的next数组和在主串中查找模式串位置的函数,用于演示KMP算法的基本应用。
|
11月前
|
算法
KMP算法
KMP算法
111 0
|
数据采集 算法 JavaScript
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
JavaScript字符串搜索涵盖`indexOf`、`includes`及KMP算法。`indexOf`返回子字符串位置,`includes`检查是否包含子字符串。KMP是高效的搜索算法,尤其适合长模式匹配。示例展示了如何在数据采集(如网页爬虫)中使用这些方法,结合代理IP进行安全搜索。代码示例中,搜索百度新闻结果并检测是否含有特定字符串。学习这些技术能提升编程效率和性能。
316 1
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
|
设计模式 JavaScript 算法
vue2 原理【详解】MVVM、响应式、模板编译、虚拟节点 vDom、diff 算法
vue2 原理【详解】MVVM、响应式、模板编译、虚拟节点 vDom、diff 算法
490 0

热门文章

最新文章