当前位置: 首页 > news >正文

网站做ssl证书有风险巨量引擎app

网站做ssl证书有风险,巨量引擎app,网站没有做适配 怎么办,迅雷黄冈网站推广软件KMP算法 全称Knuth-Morris-Pratt算法,是一种字符串匹配算法。该算法的目的是在一个文本串S内查找一个模式串P的出现位置。 KMP算法的核心思想是利用模式串自身的特性来避免不必要的字符比较。算法通过构建一个部分匹配表(也称为next数组)&a…

KMP算法

全称Knuth-Morris-Pratt算法,是一种字符串匹配算法。该算法的目的是在一个文本串S内查找一个模式串P的出现位置。

KMP算法的核心思想是利用模式串自身的特性来避免不必要的字符比较。算法通过构建一个部分匹配表(也称为next数组),来记录模式串中每个字符之前的前缀子串和后缀子串的最长公共长度。根据这个表,算法可以通过调整模式串的起始位置来跳过不需要比较的字符,从而提高匹配的效率。

KMP算法的具体步骤如下:

1. 预处理模式串P,构建部分匹配表next数组;
2. 设置两个指针i和j,分别指向文本串S和模式串P的起始位置;
3. 逐个比较S[i]和P[j],如果相等,则i和j同时后移;
4. 如果不相等,根据next数组跳过一部分字符,将j更新为next[j],同时i保持不变;
5. 重复步骤3和步骤4,直到找到一个匹配或者S已经遍历完。

KMP算法的时间复杂度为O(m+n),其中m和n分别是文本串和模式串的长度。相比于暴力匹配算法的时间复杂度O(m*n),KMP算法能够在较短的时间内找到匹配位置。

题目描述

给出两个字符串 s1​ 和 s2​,若 s1​ 的区间 [l,r] 子串与 s2​ 完全相同,则称 s2​ 在 s1​ 中出现了,其出现位置为 l。
现在请你求出 s2​ 在 s1​ 中所有出现的位置。

定义一个字符串 s 的 border 为 s 的一个非 s 本身的子串 t,满足 t 既是 s 的前缀,又是 s 的后缀。
对于 s2​,你还需要求出对于其每个前缀 s′ 的最长 border t′ 的长度。

输入格式

第一行为一个字符串,即为 s1​。
第二行为一个字符串,即为 s2​。

输出格式

首先输出若干行,每行一个整数,按从小到大的顺序输出 s2​ 在 s1​ 中出现的位置。
最后一行输出 ∣s2​∣ 个整数,第 i 个整数表示 s2​ 的长度为 i 的前缀的最长 border 长度。

输入输出样例

输入 #1复制

ABABABC
ABA

输出 #1复制

1
3
0 0 1 

说明/提示

样例 1 解释

对于 s2​ 长度为 3 的前缀 ABA,字符串 A 既是其后缀也是其前缀,且是最长的,因此最长 border 长度为 1。

数据规模与约定

本题采用多测试点捆绑测试,共有 3 个子任务。

Subtask 1(30 points):∣s1​∣≤15,∣s2​∣≤5。

Subtask 2(40 points):∣s1​∣≤10^4,∣s2​∣≤10^2。

Subtask 3(30 points):无特殊约定。

对于全部的测试点,保证 1≤∣s1​∣,∣s2​∣≤10^6,s1​,s2​ 中均只含大写英文字母。

#include<stdio.h> 
#include<string.h> 
char a[1000010],b[1000010];
int s[1000010];
int main()
{scanf("%s",a+1);scanf("%s",b+1);int c=strlen(a+1),d=strlen(b+1);int i,j=0;for(i=2;i<=d;i++){while(j>0&&b[i]!=b[j+1]) j=s[j];if(b[i]==b[j+1]) j++;s[i]=j;}j=0;for(i=1;i<=c;i++){while(j>0&&a[i]!=b[j+1]) j=s[j];if(a[i]==b[j+1]) j++;if(j==d) printf("%d\n",i-d+1),j=s[j];}for(int i=1;i<d;i++)printf("%d ",s[i]);printf("%d",s[d]);
}

http://www.dinnco.com/news/65891.html

相关文章:

  • 旅游网站开发研究现状怎么用网络推广业务
  • 湖州网站建设湖州网站建设seo研究中心
  • 门户网站做等保需要备案哪些竞价推广和seo的区别
  • 做百度手机网站点击软正规的代运营公司
  • 网站建设公司销售经理职责只需要手机号的广告
  • 免费建设网站c3sales四川seo推广
  • seo计费怎么刷关键词的如何做seo
  • 公司网站开发费用如何做账世界500强企业名单
  • 如何做推广麦当劳的网站如何制作一个网址
  • 运营电商西安百度seo推广
  • 织梦如何做网站地图如何自己弄个免费网站
  • 电影网站怎么做laravel宁波免费seo在线优化
  • 黄陂区建设招标网站镇江seo快速排名
  • 做新媒体国外网站网站建设的意义和目的
  • 个人网站有备案吗能去百度上班意味着什么
  • 智能网站建设宁德市属于哪个省份
  • 巴中做网站 微信开发西安建站推广
  • 怎么自己设置网站模板整合营销策略
  • 大连做网站公司排行榜网站服务器ip地址查询
  • 怎么请人做网站2023年第三波新冠9月
  • 网站选项卡如何做自适应网络营销的四个策略
  • 如何做网站的关键词排名下载优化大师并安装
  • 沈阳百度seo代理seo经验是什么
  • 课题组网站建设什么是seo优化?
  • 网站网络营销外包广州seo网站营销
  • 网站如何做滚动效果百度排名优化工具
  • 电子商务网站建设与开发进入百度
  • 国家机构网站建设网站推广怎么做才有效果
  • 网站备案号怎么修改搜索推广公司
  • 合肥哪里做网站关注公众号推广2元一个