最长公共前后缀(KMP中next数组求法)
字符串的前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串;后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。例如对于字符串 abacaba,其前缀有 a, ab, aba, abac, abacab,后缀有bacaba, acaba, caba, aba, ba, a。最长公共前后缀就是 aba。现给出一个长度为 N 的字符串 S,对于每个 M (0<=M<N),求出连续子串 S[0…M] 的最长公共前后缀。
输入格式:
输入数据仅有一行,包含一个长度不超过 100,000 的仅由字母 a-z 构成的字符串。
输出格式:
对于每个 M (0,1,2,…,N−1),输出对应的最长公共前后缀长度,以空格分隔,且行尾不得有多余空格。
输入样例:
abcdabcdabce
输出样例:
0 0 0 0 1 2 3 4 5 6 7 0
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<string>
using namespace std;
int Next[100001];
string s;
void getNext(){int j =0, k =-1;Next[0]=-1; while(j < s.size()){if(k ==-1|| s[j]== s[k]){j++;k++;Next[j]= k;}else k =Next[k];}
}
int main ()
{cin>>s;getNext();for(int i=1;i<=s.size();i++){if(i==1)printf("%d",Next[i]);elseprintf(" %d",Next[i]);}return 0;
}
最长公共前后缀(KMP中next数组求法)相关推荐
- 7-1 最长公共前后缀
字符串:abcdabcdabce 其未优化next数组:-1 0 0 0 0 1 2 3 4 5 6 7 最长公共前后缀: 0 0 0 0 1 2 3 4 5 6 7 0 最长公共前后缀和特征值有很大 ...
- 7-3 最长公共前后缀
字符串的前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串:后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串.例如对于字符串 abacaba,其前缀有 a, ab, aba, aba ...
- 7-3 最长公共前后缀
字符串的前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串:后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串.例如对于字符串 abacaba,其前缀有 a, ab, aba, aba ...
- KMP算法及next数组(最大公共前后缀)求解
KMP算法及next数组(最大公共前后缀)求解 2020.12.14理解: 1. KMP算法 网上关于KMP算法讲解较为简单易懂,因此在此只作简述: 在字符串s中匹配字符串t: S: ABE-AB-A ...
- HDU 4763 Theme Section(KMP+枚举公共前后缀)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4763 题目大意: 给你一个字符串s,存在一个 子串E同时出现在前缀.中间.后缀,即EAEBE这种模式 ...
- Kmp算法之 求最大公共前后缀
先抛问题1:如果我们已知一个字符str的最大公共前后缀长度,当这个str再添加一个字符的str2,如何判断这个新的str2的最大公共前后缀长度?? 结论:只要将新添加的字符,与str的最大公共前后缀中 ...
- 北大OJ百练——4073:最长公共字符串后缀(C语言)
刚刚看到一道北大的OJ题,很简单的一道题.原题如下(偷个懒,直接截图): 看完这道题,我想大家都和我一样觉得这道题很简单,事实也是如此,毕竟通过率很高. 我先来说一下我的思路吧.我是想先把这些所有的字 ...
- 字符串最长公共前缀后缀长度
首先,要了解两个概念:"前缀"和"后缀". "前缀"指除了最后一个字符以外,一个字符串的全部头部组合:"后缀"指除了第一 ...
- Bailian4073 最长公共字符串后缀【文本处理】
4073:最长公共字符串后缀(Longest String Postfix) 总时间限制: 1000ms 内存限制: 65536kB 描述 给出若干个字符串,输出这些字符串的最长公共后缀. 输入 由若 ...
最新文章
- [转] Putty - 文件夹显示的蓝色太暗
- 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1...
- ecshop“发货查询”中加入收货人、收货地址、发货时间、配送方式
- iOS快速开发框架Bee-Framework应用和解析(二) - Bee framework架构概览
- Redhat linux下安装oracle11r2手册+截图_toto_V1.0
- java--面向接口编程
- 添加一列_办公软件操作技巧023:如何给excel数据批量添加单位
- python补集运算_Python 的集合(set)运算
- OpenShift 4 - Service Mesh环境和BookInfo应用安装脚本
- Python提取任意长度整数的每位数字
- 如何找到 AWS 环境下应用程序中易于得手的漏洞?
- Oracle教程之管理索引(一)--Oracle管理索引
- paip.基于HTML gui界面的javascript JS实现SLEEP。。
- IDEA 安装插件后,重启插件消失问题
- selenium满屏操作(浏览器最大化)
- 完蛋!win 11 ,可能要凉?
- windows系统下载合集
- “最牛愤青教授”郑强叫板当代教育
- 在职人员缴纳的社保跟灵活就业人员缴纳的社保到底有什么不同?
- 字符和字节的区别与分析
热门文章
- 切削技术首页 基础知识 钻镗铣加工 钻铣切削加工负荷分析
- 为什么Spark这么牛逼?
- react+antd修改主题色
- 柠檬桉叶油和deet_关于驱蚊防蚊知识及方式手段选择,你想知道的这里都有
- 记一次线程池引发的BUG,差点被祭天
- 记一次rsync日志报错directory has vanished
- 大数据可视化,助力行业大数据应用
- 华为P9遭疯抢,首发3分钟售罄;苹果汽车概念图遭权威杂志曝光引热议;中科大机器人太逼真
- IE浏览器通过JS提交表单时报错拒绝访问
- 生死狙击2等待服务器响应,《生死狙击2》劫掠测试结束:热爱不止 来日再战!...