题目链接:https://vjudge.net/problem/HDU-2594

题意:给定两个字符串s1、s2,求s1的前缀和s2的后缀的最长公共部分。

思路:

  将s1和s2连接后求nex数组即可,当公共部分超过s1、s2长度的最小值时,输出最小值。

AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; const int maxn=1e5+;
int len1,len2,len,Min,nex[maxn],ans;
char s1[maxn],s2[maxn]; void get_next(){
int j;
j=nex[]=-;
for(int i=;i<len;++i){
while(j>-&&s1[i]!=s1[j+]) j=nex[j];
if(s1[i]==s1[j+]) ++j;
nex[i]=j;
}
} int main(){
while(~scanf("%s%s",s1,s2)){
len1=strlen(s1);
len2=strlen(s2);
Min=min(len1,len2);
strcat(s1,s2);
len=len1+len2;
get_next();
if(nex[len-]+>Min) ans=Min;
else ans=nex[len-]+;
if(ans){
for(int i=;i<ans;++i)
printf("%c",s1[i]);
printf(" ");
}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. 奶牛通讯 usaco 网络流
  2. jQuery查看dom元素上绑定的事件列表
  3. Ubuntu上glibc CVE-2015-7547漏洞的POC验证和修复
  4. apple
  5. linux学习第一天(X window 及 语系查询设置)
  6. 了解 : Odata 的 $filter
  7. JqGrid 显示表格
  8. 没搞懂的package.json
  9. IPv6简介
  10. React JS和React-Native学习指南
  11. Spring NoSQL
  12. weblogic服务目录迁移记录
  13. Linux(一)——认识Linux
  14. android 学习之rxjava
  15. Linux 查看是64位还是32位
  16. composer应用
  17. body-parser小解
  18. 2018,重新开始学习DotNetCore
  19. AtCoder Regular Contest 093 E: Bichrome Spanning Tree(生成树)
  20. EIGRP-3-EIGRP的多参数度量

热门文章

  1. 2019暑期金华集训 Day1 数据结构
  2. spark2.1.0的源码编译
  3. 链家网爬虫同步VS异步执行时间对比
  4. python学习:模块(第一节)
  5. start、就绪、运行状态的demo演示
  6. Debian/Ubuntu/CentOS开机启动
  7. HTML中调用带有SoapHeader头的WebService的两种方法
  8. WebSocketSharp 创建客户端和服务端
  9. legend3---17、如何抽象和复用控制器中的方法
  10. arcgis python ListEnvironments 函数可返回地理处理环境名称列表。