首页 > 其他分享 >王道408---DS---串

王道408---DS---串

时间:2023-10-29 14:22:04浏览次数:29  
标签:next --- 字串 数组 KMP 408 DS PM

主要内容就是KMP算法

KMP

串的一些基本概念

1、子串/模式串

串中任意多个连续的字符组成的子系列叫做字串

2、主串

包含字串的串称为主串

3、模式匹配(pattern matching)

字串的定位操作称为串的模式匹配,是求子串在主串中的位置

算法

参考: https://www.bilibili.com/video/BV19C4y157dH/?spm_id_from=333.999.0.0&vd_source=87f7ad8544d4c3ad070c5c2ff28b7698

image-20231022173406509

  1. 首先写出PM(Partial Match)部分匹配值
  2. 写出next数组(next数组可分为两种,一种是下标从0开始,一种是下表从1开始),需要注意的是next数组与PM数组总是错位一格
  3. 写出nextval

nextval原理如下:

image-20231022173657130

注意点:

1、PM开局为0

2、next数组下表为0的时候,开局就是-1

3、PM下标从1开始

标签:next,---,字串,数组,KMP,408,DS,PM
From: https://www.cnblogs.com/lordtianqiyi/p/17795838.html

相关文章

  • 2023-2024-1学期 20231424 《计算机基础与程序设计》第5周学习总结
    2023-2024-1学期20231424《计算机基础与程序设计》第5周学习总结作业信息作业属于的课程<班级链接>(2022-2023-1-计算机基础与程序设计)作业要求<作业要求链接>(2022-2023-1计算机基础与程序设计第一周作业)这个作业的目标《计算机科学概论》第6章和《C语言程序......
  • Unity学习笔记--入门
    Unity引擎学习入门:Unity中的坐标系:左手坐标系(z轴正方向向里面)x轴:平行屏幕向右正方向y轴:平行屏幕向上正方向Z轴:垂直屏幕向内为正方向【补】openGL是右手坐标系DirectX是左手坐标系窗口:窗口布局Layout:Scene这里我们可以看见所有的场景内容。窗口上的工具栏:有关......
  • 【数据结构】- 并查集
    并查集简介并查集是可以维护元素集合的数据结构。并查集通过把一个集合作为一棵树的方式,维护一个森林(这暗含并查集可以维护连通块个数,如在kruskal中,通过并查集维护连通块个数就能快速判断循环退出条件),并使用树的根节点代表各集合。这样一棵树的节点就对应该集合中的元素......
  • win10 openocd通过vscode远程调试stm32的uboot--Apple的学习笔记
    一,前言我在uboot支持的cortex-M4内核启动流程分析--Apple的学习笔记中就说过了,我计划要单步调试uboot,但是我只有stlink,所以要基于openocd的gdb来调试,所以就做了尝试,花费约2天时间,虽然做了些无用功,专门还装了ubuntu18.04,且基于ubuntu还安装了openocd这些其实都无用的,但是就是这些过......
  • 无涯教程-Clojure - agent-error函数
    如果代理失败,则返回在代理的异步操作期间抛出的异常,如果代理没有失败,则返回nil。agent-error-语法(agent-erroragentname)参数   - "agentname"是应该为其设置agent-error函数的代理。返回值 - 如果代理失败,则返回在代理的异步操作过程中引发的异常。如果代......
  • 形态学操作--4.梯度运算
    ......
  • 024-第三代软件开发-TabView
    第三代软件开发-TabView文章目录第三代软件开发-TabView项目介绍TabView官方示例项目实际使用关键字:Qt、Qml、TabView、关键字4、关键字5项目介绍欢迎来到我们的QML&C++项目!这个项目结合了QML(QtMeta-ObjectLanguage)和C++的强大功能,旨在开发出色的用户界面和高性能......
  • 022-第三代软件开发-QCustomPlot核心迁移
    第三代软件开发-QCustomPlot核心迁移文章目录第三代软件开发-QCustomPlot核心迁移项目介绍先说点GitHubCopilotQCustomPlot核心迁移QQuickPaintedItemXXX_QCustomChart关键字:Qt、Qml、QCustomPlot、GitHubCopilo、关键字5项目介绍欢迎来到我们的QML&C++项目!这个项目......
  • 021-Qt 配置GitHub Copilot
    Qt配置GitHubCopilot文章目录Qt配置GitHubCopilot项目介绍GitHubCopilot配置GitHubCopilotQt前置条件升级QtGitHubCopilot前置条件激活的了GitHubCopilot账号安装Neovim启用插件,重启Qt配置GitHubCopilo安装Nodejs下载[copilot.vim](https://github.com/github/copil......
  • MFC---常用控件(下)(列表控件、树控件、标签控件)
    列表控件CListCtrl常用属性设置:view->Report(报表方式)常用接口关联控件变量后,测试接口://设置风格样式 //LVS_EX_GRIDLINES网格 //LVS_EX_FULLROWSELECT选中整行 m_list.SetExtendedStyle(m_list.GetExtendedStyle() |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); //插......