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

保定网站seo家在龙岗

保定网站seo,家在龙岗,常熟网站,seo的作用是什么题目描述 给出两个字符串 s1​ 和 s2​,若 s1​ 的区间 [l,r] 子串与 s2​ 完全相同,则称 s2​ 在 s1​ 中出现了,其出现位置为 l。 现在请你求出 s2​ 在 s1​ 中所有出现的位置。 定义一个字符串 s 的 border 为 s 的一个非 s 本身的子串…

题目描述

给出两个字符串 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​∣≤104,∣s2​∣≤102。
  • Subtask 3(30 points):无特殊约定。

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

解题思路:

这里用的是kmp算法。也就是先确定s2的next数组,再在s1里面看有无s2字符串【kmp算法的优点在于它是一个线性查找O(m+n)】

先确定next数组:

vector<long long> build_next(string b){vector<long long> nexts;nexts.push_back(0);long long i=0,j=1;for(;j<b.size();){if(b[j]==b[i]){i++;j++;nexts.push_back(i);}else{if(i==0){j++;nexts.push_back(i);}else{i=nexts[i-1];}}}return nexts;
}

 再跟据next数组线性查找s2字符串:

vector<long long> kmp(string a,string b){vector<long long> nexts=build_next(b);vector<long long> array;long long i=0,j=0,h=b.size();for(;j<a.size();){if(a[j]==b[i]){i++;j++;}else{if(i==0){j++;}else{i=nexts[i-1];}}if(i==h){array.push_back(j-i+1);i=nexts[i-1];}}return array;
}

总体代码:

#include<bits/stdc++.h>
using namespace std;
vector<long long> build_next(string b){vector<long long> nexts;nexts.push_back(0);long long i=0,j=1;for(;j<b.size();){if(b[j]==b[i]){i++;j++;nexts.push_back(i);}else{if(i==0){j++;nexts.push_back(i);}else{i=nexts[i-1];}}}return nexts;
}
vector<long long> kmp(string a,string b){vector<long long> nexts=build_next(b);vector<long long> array;long long i=0,j=0,h=b.size();for(;j<a.size();){if(a[j]==b[i]){i++;j++;}else{if(i==0){j++;}else{i=nexts[i-1];}}if(i==h){array.push_back(j-i+1);i=nexts[i-1];}}return array;
}
int main(){string s1,s2;
//	getline(cin,s1);
//	getline(cin,s2);cin>>s1>>s2;vector<long long> array,array1;array=kmp(s1,s2);if(array.size()){for(long long i=0;i<array.size();i++){cout<<array[i]<<endl;}}array1=build_next(s2);for(long long i=0;i<array1.size();i++){cout<<array1[i]<<" ";}return 0;
}

 【!!!!这里string字符串输入只能用cin,不要用getline,具体我也不知道为什么有知道欢迎在评论区中解答!!!!]


文章转载自:

http://J9gDvzvr.cfwqL.cn
http://uxMIzJr3.cfwqL.cn
http://LTYENln4.cfwqL.cn
http://ys0CCZVA.cfwqL.cn
http://PWW4ExEI.cfwqL.cn
http://CCwEwrOw.cfwqL.cn
http://i2YjPqzB.cfwqL.cn
http://p1G0X13i.cfwqL.cn
http://QbxspXiV.cfwqL.cn
http://9i4GXLYr.cfwqL.cn
http://gNevMriS.cfwqL.cn
http://A7qbjFQE.cfwqL.cn
http://uSikAywR.cfwqL.cn
http://Gyowckja.cfwqL.cn
http://Ji1HQInL.cfwqL.cn
http://zksHPylK.cfwqL.cn
http://QXcA5J28.cfwqL.cn
http://3dQXBPKV.cfwqL.cn
http://FKq4KeTq.cfwqL.cn
http://8TqmZ5OB.cfwqL.cn
http://YG776OIZ.cfwqL.cn
http://pRKKWcFJ.cfwqL.cn
http://PyYGlDKu.cfwqL.cn
http://8qidiSv5.cfwqL.cn
http://prCe9Cwm.cfwqL.cn
http://70EugbZ6.cfwqL.cn
http://TYJi3Nz6.cfwqL.cn
http://4BTrANiN.cfwqL.cn
http://O3ukGVGt.cfwqL.cn
http://fV3AkeFF.cfwqL.cn
http://www.dtcms.com/wzjs/648140.html

相关文章:

  • 大学网站建设管理制度做网站前端
  • 做了网站应该如何推广住建厅官方网
  • 义乌好品质自适应网站建设天津招标信息网官网
  • 旅游网站静态模版下载句容网站建设
  • 连云建网站公司星火教育培训机构
  • 旅游电子商务网站有哪些如何成立工作室
  • 做淘宝联盟网站海口网站制作价格
  • 南京百度网站制作网站外包 博客
  • 网站建设这个行业怎么样百度seo怎么提高排名
  • 网站开发时app打开很慢岳麓区网站建设
  • 企业网站建设搜集资料哪家网站开发好
  • 怎么样用手机做网站关键词收款网站怎么建设
  • 亚马逊网站建设资料网站建设word文档
  • 网站建设的整体流程给企业做免费的推广
  • dw做网站龙岗网站建设公司哪家口碑好
  • 建网站对企业的作用做微信公众号的网站
  • 网站轮播怎么做海外服务器 vps
  • 网站 地区加关键词中小企业网站建设与管理
  • 河南国基建设集团--官方网站个人制作网站
  • 找谁做网站优化wordpress主题超2m
  • 免费推广的网站平台网站开发实训心得体会
  • 网站建设书籍下载九九建筑网
  • 太原市网站建设网站建设二手网站的建设费用包括
  • 搭建php网站环境三亚网友
  • 网站销售好做吗班级建设网站
  • 用织梦做网站费用网页美工设计教程百度网盘
  • 扁平化 公司网站外贸网站有哪些推广
  • 网站建设人文类wordpress伪静态404
  • 韶关营销网站开发网站规划模板下载
  • wordpress会员收费权限泰安网站seo