题目描述

给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB } 因此,该串的真前缀和真后缀中最长的相等串为AB,我们称之为该串的“最长的真前后缀”。试实现一个函数string matched_Prefix_Postfix(string str),得到输入串str的最长的真前后缀。若不存在最长的真前后缀则输出empty

输入

第1行:串的个数 n第2行到第n+1行:n个字符串

输出

n个最长的真前后缀,若不存在最长的真前后缀则输出empty。

样例输入

6
a
ab
abc
abcd
abcda
abcdab

样例输出

empty
empty
empty
empty
a
ab

代码

#include "bits/stdc++.h"
using namespace std;
const int maxn=1e5+20;
int t,n,nex[maxn];
string mains,s,ress;void getnext(){int i=0,j=-1,len=s.length();nex[0]=-1;while(i<len){if(j==-1 || s[i]==s[j]){nex[++i]=++j;}else j=nex[j];}
}int find(){int i,j;int l1=mains.length(),l2=s.length();for(i=0,j=0;i<l1 && j<l2;){if(j==-1 || mains[i]==s[j]){i++,j++;}else j=nex[j];}if(j==l2){return i-j+1;}return -1;
}int main(){
//    freopen("123.in","r",stdin);cin>>t;while(t--){cin>>s;memset(nex,0,sizeof nex);getnext();int cnt=nex[s.length()];if(cnt==0 || cnt==-1) puts("empty");else{string ans=s.substr(0,cnt);cout<<ans<<endl;}}return 0;
}

串应用- 计算一个串的最长的真前后缀相关推荐

  1. java中计算一个方法执行时长,耗费单位(秒)

    long startTime=System.currentTimeMillis(); //执行方法 long endTime=System.currentTimeMillis(); float exc ...

  2. 串行计算、并行计算、分布式计算、网格计算与云计算

    并行计算 并行计算可以划分成时间并行和空间并行.时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题. 并行计算是相对于串行计算来说的.要理解并行计算,首先需要了解 ...

  3. 怎么判断一个字符串的最长回文子串是否在头尾_LeetCode 第 131 号问题:分割回文串...

    题目来源于 LeetCode 上第 131 号问题:分割回文串.题目难度为 Medium,目前通过率为 45.8% . 题目描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返 ...

  4. 腾讯2019技术岗笔试 小Q非常喜欢复读,有时候,小Q会得到某个字符串S。这时他会把s不断重复不断重复连成一个无限长的串。比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是:

    小Q非常喜欢复读,有时候,小Q会得到某个字符串S.这时他会把s不断重复不断重复连成一个无限长的串.比如说,小Q现在得到一个串abc,他会直一复读, 那么形成的字符串就是: abcabcabcabcab ...

  5. c语言中计算一个字母的序数,C语言编程 输入一串字符统计英文字母的个数

    C语言编程:输入一行字符,至少50个,统计其中英文字母,数字,其他字母个数 楼上那个不能统计空格个数,我这个可以#include#includeintmain(){intcnt_c=0,cnt_n=0 ...

  6. 怎么判断一个字符串的最长回文子串是否在头尾_最长回文字串/子序列问题(leetcode5,9,519)

    leetcode 5 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: " ...

  7. 百度云BaaS体系揭秘,突破共识机制、单机计算和串行处理三大瓶颈

    区块链作为去中心化的技术机制拥有广泛的应用场景与市场潜能.自2017年爆发式增长后,区块链虽然已经进入平稳期,但仍然存在概念混淆.技术性能制约.智能合约制约.共识机制.网络建设等痛点.为了打破行业壁垒 ...

  8. C语言 计算一串字符中出现的数字字符数

    getchar 函数的功能是读取字符串并将其返回.输入结束或读取过程中发生错误时,就会返回EOF值. #include <stdio.h>int main(void){int i, str ...

  9. Applese 的回文串(加一个字符的回文)

    链接:https://ac.nowcoder.com/acm/contest/330/I 来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如--判断一个字符串是不是回文串. ...

最新文章

  1. V2X 是自动驾驶重要基石,巨头纷纷抢滩布局
  2. SLAM:现在,未来和鲁棒感知时代
  3. Linux设置SSH登录(SecureCrt)
  4. nexus-3本地下载jar的settipng.xml配置
  5. 寻找最大的K个数,Top K问题的堆实现
  6. java虚拟机_一文彻底读懂Java虚拟机!(JVM)
  7. 2017(深圳) .NET技术分享交流会(第二期)网络直播活动
  8. Loj #6274. 数字 数位dp + 去重
  9. 文本分析软件_读书笔记:伍多库卡茨质性文本分析:方法、实践与软件使用指南...
  10. c语言char a[10]; sprintf(a,%d,n);,c语言输入输出的一些细节
  11. 大一c语言图书管理系统查询,大一C语言课程设计图书信息管理系统
  12. shell实现简单计算机功能,Shell 实现简单计算器功能(示例代码)
  13. 100~200以内素数
  14. 修真院教学模式四大体系之开发流程
  15. 98% after emitting CopyPlugin问题
  16. 视频教程-Kali Linux渗透测试全程课与脚本语言编程系列课程-渗透测试
  17. 看月子会所的实业老板,如何通过线上引流,开启互联网项目投资-库克老爷教视频
  18. 手把手做一个JSP入门程序(九):购物车的基本实现(Servlet)
  19. Remove Duplicates
  20. 群晖Transmission的RSS订阅功能

热门文章

  1. linux xargs
  2. 做搜索引擎关键词排名优化要多少钱
  3. 物联网定位技术|实验报告|实验一 Wi-Fi指纹定位
  4. Java使用JAVE获取MP4播放时长
  5. MySQL---DDL语句、DML语句与DCL语句
  6. 【手绘漫画】图解LeetCode之x 的平方根(LeetCode 69题)
  7. 2019 最前沿的几个 Flutter 实践:微信、咸鱼、美团
  8. html好看的渐变效果,CSS3实现渐变/立体/扁平的漂亮按钮
  9. EMC-传导发射之--共振才是EMI问题的最大本质
  10. 直流有刷电机并联小电容作用分析