字符串的问题

在原来的字符串中前缀与后缀相同,且原来的中间还含有这个子串;

这里加的num【】数组真是太厉害了,可以直接用来判断中间是否有子串;

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cstdio>
using namespace std;
const int maxn =1e6+; int nt[maxn],len;
int num[maxn];
string str;
void get_nt()
{
int i=,k=-;
nt[]=-;
while(i < len)
{
if( k==- || str[i]==str[k])
nt[++i]=++k;
else
k=nt[k];
}
}
int main(){
int find = ;
cin>>str;
len =str.length();
get_nt();
for(int i=;i<len;i++)
{
num[nt[i]]++;
cout<<nt[i]<<endl;
}
int i =nt[len];
//cout<<len<<endl;
cout<<i<<endl;
while(i)
{
if(num[i])
{
for(int k=;k<i;k++)
cout<<str[k];
cout<<endl;
find = ;
break;
}
i=nt[i];
}
if(find)cout<<"Just a legend"<<endl;
return ;
}

最新文章

  1. 【BZOJ1497】[NOI2006]最大获利 最小割
  2. union和union all用法
  3. [.NET领域驱动设计实战系列]专题四:前期准备之工作单元模式(Unit Of Work)
  4. 在AD转换中的过采样和噪声形成
  5. 使用jsTree动态加载节点
  6. linux信息查找
  7. PHP ServerPush &lt;转&gt;
  8. 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)
  9. 【SSRS】入门篇(四) -- 向报表添加数据
  10. luogu1196 银河英雄传说 (并查集)
  11. WebLogic调用WebService提示Failed to localize、Failed to create WsdlDefinitionFeature
  12. MySQL 数据类型对比:char 与 varchar;varchar 与 text;datetime 与 timestamp;blob 与 text;
  13. 利用blob对象实现大文件分片上传
  14. 解决react-router 的activeClassName 首页重复匹配问题
  15. sonarqube插件开发(三) 调试插件
  16. 【CF772D】Varying Kibibits FWT
  17. css3 3d翻转效果
  18. mysql获取随机题目、排序
  19. js数字进制转换
  20. KVM虚拟机克隆及快照管理

热门文章

  1. Python基础总结之第十一天开始【再深入一下函数,重新认识一下】(新手可相互督促)
  2. Ubuntu中修改默认开机项
  3. java volatile关键字作用及使用场景
  4. maven-assembly-plugin 进行打包
  5. spark shuffle的写操作之准备工作
  6. PIP键盘设置实时时钟--智能模块
  7. SpringBoot中读取配置文件的几种方式
  8. linux安装启动mongodb
  9. 全球十大OTA 谁能有一席之地?
  10. DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)