网站切图怎么收费js网站评论框

diannao/2026/1/23 20:49:01/文章来源:
网站切图怎么收费,js网站评论框,同城分类信息网站建设,禁止粘贴的网站1 字符串匹配 字符串匹配是计算机的基本任务之一。 字符串匹配是什么#xff1f;举例来说#xff0c;有一个字符串BBC ABCDAB ABCDABCDABDE#xff0c;我想知道#xff0c;里面是否包含另一个字符串ABCDABD#xff1f; 许多算法可以完成这个任务举例来说有一个字符串BBC ABCDAB ABCDABCDABDE我想知道里面是否包含另一个字符串ABCDABD   许多算法可以完成这个任务Knuth-Morris-Pratt算法简称KMP是最常用的之一。它以三个发明者命名起头的那个K就是著名科学家Donald Knuth《计算机程序设计艺术》的作者。 2 KMP算法   这个算法不太容易理解网上有很多解释但读起来都很费劲。直到读到Jake Boxer的文章我才真正理解这种算法。下面我用自己的语言试图写一篇比较好懂的KMP算法解释。   1.   首先字符串BBC ABCDAB ABCDABCDABDE的第一个字符与搜索词ABCDABD的第一个字符进行比较。因为B与A不匹配所以搜索词后移一位。   2.   因为B与A不匹配搜索词再往后移。   3.   就这样直到字符串有一个字符与搜索词的第一个字符相同为止。   4.   接着比较字符串和搜索词的下一个字符还是相同。   5.   直到字符串有一个字符与搜索词对应的字符不相同为止。   6.   这时最自然的反应是将搜索词整个后移一位再从头逐个比较。这样做虽然可行但是效率很差因为你要把搜索位置移到已经比较过的位置重比一遍。   7.   一个基本事实是当空格与D不匹配时你其实知道前面六个字符是ABCDAB。KMP算法的想法是设法利用这个已知信息不要把搜索位置移回已经比较过的位置继续把它向后移这样就提高了效率。   8.   怎么做到这一点呢可以针对搜索词算出一张《部分匹配表》Partial Match Table。这张表是如何产生的后面再介绍这里只要会用就可以了。   9.   已知空格与D不匹配时前面六个字符ABCDAB是匹配的。查表可知最后一个匹配字符B对应的部分匹配值为2因此按照下面的公式算出向后移动的位数   移动位数 已匹配的字符数 - 对应的部分匹配值   因为 6 - 2 等于4所以将搜索词向后移动4位。   10.   因为空格与不匹配搜索词还要继续往后移。这时已匹配的字符数为2AB对应的部分匹配值为0。所以移动位数 2 - 0结果为 2于是将搜索词向后移2位。   11.   因为空格与A不匹配继续后移一位。   12.   逐位比较直到发现C与D不匹配。于是移动位数 6 - 2继续将搜索词向后移动4位。   13.   逐位比较直到搜索词的最后一位发现完全匹配于是搜索完成。如果还要继续搜索即找出全部匹配移动位数 7 - 0再将搜索词向后移动7位这里就不再重复了。   14.   下面介绍《部分匹配表》是如何产生的。   首先要了解两个概念前缀和后缀。 前缀指除了最后一个字符以外一个字符串的全部头部组合后缀指除了第一个字符以外一个字符串的全部尾部组合。   15.   部分匹配值就是前缀和后缀的最长的共有元素的长度。以ABCDABD为例    A的前缀和后缀都为空集共有元素的长度为0    AB的前缀为[A]后缀为[B]共有元素的长度为0    ABC的前缀为[A, AB]后缀为[BC, C]共有元素的长度0    ABCD的前缀为[A, AB, ABC]后缀为[BCD, CD, D]共有元素的长度为0    ABCDA的前缀为[A, AB, ABC, ABCD]后缀为[BCDA, CDA, DA, A]共有元素为A长度为1    ABCDAB的前缀为[A, AB, ABC, ABCD, ABCDA]后缀为[BCDAB, CDAB, DAB, AB, B]共有元素为AB长度为2    ABCDABD的前缀为[A, AB, ABC, ABCD, ABCDA, ABCDAB]后缀为[BCDABD, CDABD, DABD, ABD, BD, D]共有元素的长度为0。   16.   部分匹配的实质是有时候字符串头部和尾部会有重复。比如ABCDAB之中有两个AB那么它的部分匹配值就是2AB的长度。搜索词移动的时候第一个AB向后移动4位字符串长度-部分匹配值就可以来到第二个AB的位置。   算法时间复杂度为O(mn)其中m为字符段长度n为匹配模式的长度。 3 算法实现 void getNext(const std::string p, std::vectorint next) {next.resize(p.size());next[0] -1;int i 0, j -1;while (i ! p.size() - 1){//这里注意i0的时候实际上求的是next[1]的值以此类推if (j -1 || p[i] p[j]){i;j;next[i] j;}else{j next[j];}} }int kmp(const std::string s, const std::string p, const int sIndex 0) {std::vectorintnext(p.size());getNext(p, next);//获取next数组保存到vector中int i sIndex, j 0;while(i ! s.length() j ! p.length()){if (j -1 || s[i] p[j]){i;j;}else{j next[j];}}return j p.length() ? i - j: -1; }    相关内容kmp算法实现原理及简单示例。转载于:https://www.cnblogs.com/maybe2030/p/4633153.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子商务网站的开发流程专业网站建设服务包括哪些

注:本实验所用仪器全为自己使用!请不要侵犯他人权益 文章目录 一、连接无线网卡二、抓取TCP握手包三、aircrack-ng跑包和hashcat跑包1.aircrack2.Hashcat 环境: VMware Workstation 16 Pro kali-linux-2023.1 64位 python3.9.13 RT3070-U…

义乌网站备案网站优化的监测评价

在cocos creator中,向量叉乘(Cross Product)是一个重要的概念,主要用于3D图形学中的方向计算和法线计算。叉乘的结果是一个垂直于两个输入向量的新向量,其长度等于输入向量围成的平行四边形的面积。以下是对向量叉乘的…

扁平化网站特效举例说明什么是网络营销

全世界只有3.14 % 的人关注了爆炸吧知识自从2012年深度学习再一次声名鹊起以来,许多机器学习框架都争先恐后地要成为研究人员和行业从业者的新宠。面对如些众多的选择,人们很难判断最流行的框架到底是什么。在某些情况下,深度学习或深度迁移学…

长沙模板建站定制珠海做网站那家好

大家平时将u盘或其他可移动设备连接电脑插口的时候,不少电脑小白都碰到过操作系统自动重启甚至出现电脑死机的尴尬情况。针对u盘等外部设备连接引起的电脑死机问题,我们应该根据具体问题具体分析,找到原因就可以解决掉。接下来小编带大家看看…

wordpress要求网站如何做关键词优化

目录 一、安装 二、配置 三、编写需要引导动画的页面 四、添加引导效果 一、安装 npm i intro.js 二、配置 详细配置可以参考,官网: Intro.js Documentation | Intro.js Docs https://introjs.com/docs 新建一个intro.js的文件: 三、…

网站主页尺寸免费学生网页制作成品

程序分析:在数学中,两个数的最小公倍数两个数的乘积/两数的最大公约数。求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N。如果余数为0,则N即为所求;如果…

做外汇看的国外网站企业型网站价目表

575. 分糖果 给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。 示例 1:输入: candies [1,1,2,2,3,3] 输出: 3 解析: 一共有三…

百度网站推广外包免费动图制作app

解决方法:在docker-compose.yml文件中去掉端口的配置(去掉下图圈住部分),我们要启动5个,配置了端口我们只能启动一个,所以就会报错

广州顺德网站设计焦作官网网站推广工具

题目 链表的中间结点原题入口题目内容题目解析思路一代码实现一思路二代码实现二 链表中倒数第k个结点题目链接题目内容思路代码实现 合并两个有序链表原题入口题目内容思路代码实现 反转链表题目传送入口题目内容思路一代码复现一思路二代码实现二 链表的中间结点 原题入口 …

网站策划的具体内容是什么网站设计怎么弄

文章目录 一、GSL介绍二、GSL下载三、文件分析四、pro文件五、编译实践一、GSL介绍 GSL(GNU Scientific Library)是一个开源的数值计算库,用于提供一系列常用的数学函数和算法。它为科学计算和数据分析提供了高效、可靠的工具。 GSL库提供了丰富的功能,包括数值积分、数值…

怎样查网站备案人的联系方式24小时学会网站建设下载

并查集(Union-Find)是一种用于处理一些不交集合合并及集合间元素查找问题的数据结构。它提供了两个主要的操作:查找(Find)和合并(Union)。查找操作用于确定某个元素属于哪个集合,而合…

网站开发范围说明书怎么申请自己的域名

给定一个 nn 的整数矩阵。对任一给定的正整数 k<n&#xff0c;我们将矩阵的偶数列的元素整体向下依次平移 1、……、k、1、……、k、…… 个位置&#xff0c;平移空出的位置用整数 x 补。你需要计算出结果矩阵的每一行元素的和。 输入格式&#xff1a; 输入第一行给出 3 个…

品牌网站查询百度服务商

2019独角兽企业重金招聘Python工程师标准>>> 上次在《JSON Web Token - 在Web应用间安全地传递信息》中我提到了JSON Web Token可以用来设计单点登录系统。我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统&#xff0c;然后再延伸到单点登录系统。 如果还没…

企业网站的推广阶段和特点门户网站的种类

1.引言java源文件经过编译后生成字节码class文件&#xff0c;需要经过虚拟机加载并转换成汇编指令才能执行&#xff0c;那么虚拟机是如何一步步加载这些class文件的对于java程序员是完全透明的&#xff0c;本文尝试全面分析jvm类加载机制。2.思考开始之前我们来简单思考一下&am…

网站制作公司新鸿儒安居客官网网站

转载自 ssh免密登陆失败原因总结&#xff08;Linux&#xff09; 1. SSH公钥认证&#xff08;免密码&#xff09;配置 登录到本机服务器A&#xff0c;切换到响应的操作系统用户&#xff0c;执行命令&#xff0c;生成秘钥文件【按照提示直接回车】 ssh-keygen -t rsa 将公钥传送…

app网站软件做网站好迷茫

大家好&#xff0c;我是若川。最近跟朋友聊技术&#xff0c;发现越来越多的大厂&#xff0c;都优先考虑用 React 做项目&#xff0c;在面试中也经常会考察对 React Hooks 的理解。其实&#xff0c;我一直觉得&#xff0c;React 才是前端的正确打开方式。当然&#xff0c;并不是…

网站怎么在百度做推广方案博客自定义网站

接入穿山甲SDK app示例&#xff1a; android 数独小游戏 经典数独休闲益智 广告接入示例: Android 个人开发者如何接入广告SDK&#xff0c;实现app流量变现 Ability页面的生命周期 学习前端&#xff0c;第一步最重要的是要理解&#xff0c;页面启动和不同场景下的生命周期的…

企业网站的建设怎么收费定制网站开发设计

在云原生时代和容器化浪潮中&#xff0c;容器的日志采集是一个看起来不起眼却又无法忽视的重要议题。对于容器日志采集我们常用的工具有filebeat和fluentd&#xff0c;两者对比各有优劣&#xff0c;相比基于ruby的fluentd&#xff0c;考虑到可定制性&#xff0c;我们一般默认选…

深圳宝安区做网站照片制作动态图片软件

前言 ✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青-CSDN博客 目的&#xff0c;学习offsetof宏计算结构体相对偏移量 1.offsetof宏 来我们看图…

wordpress建站实例公司名称预先核准官网

MFC控件编程之组合框跟列表框 一丶简介 如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的. 二丶组合框列表框常用的方法 AddString(字符串) 添加一个字符串.放到最后面. DeleteString(索引); 删除指定索引的字符串. int GetCurSe…