题意:

给你两个字符串,输出他们合并之后的字符串,合并的时候把A的后缀和B的前缀重叠合(或者把A的前缀和B的后缀重合)。要求合并后的串既包含A右包含B,

且使得合并后的字符串尽量短,其次是使得合并后的字符串字典序尽量小.

分析:

首先A和B合并他们一定是首尾重叠相连,要求合并后字典序最小,所以当合并后串长度一样时,我们要把A或B中字典序小

  的放在前面。

然后计算A的后缀和B的前缀匹配长度为len1,计算A的前缀和B的后缀匹配长度为len2。

如果len1大,那么就把A放前面。如果len2大,那么就把B放前面。

关键点:

  求字符串匹配长度

hdu G++ 提交

#include "bits/stdc++.h"

可以
#include "bits/stdc++.h"
using namespace std; const int maxn=; int next1[maxn];
char s1[maxn],s2[maxn]; void getnext(char *t){
int len=strlen(t);
int i=,j=-;
next1[]=-;
while(i<len){
if(j==- || t[i]==t[j]){
i++;j++;
next1[i]=j;
}else
j=next1[j];
}
} int KMP(char *s,char *t){
int len1=strlen(s),len2=strlen(t);
int i=,j=;
getnext(t);
while(i<len1 && j<len2){
if(j==- || s[i]==t[j]){
i++;j++;
}else
j=next1[j];
}
if(i==len1)
return j;
return ;
}
///KMP返回的就是那个公共子串的长度
int main(){ //freopen("input.txt","r",stdin);
while(~scanf("%s%s",s1,s2)){
int x=KMP(s1,s2);///s1模式串
int y=KMP(s2,s1);
if(x==y){///相等取字典序小的
if(strcmp(s1,s2)<)
printf("%s%s\n",s1,s2+x);
else
printf("%s%s\n",s2,s1+x);
}else if(x>y)///取合并后短的
printf("%s%s\n",s1,s2+x);
else
printf("%s%s\n",s2,s1+y);
}
return ;
}

最新文章

  1. WCF权限控制
  2. 为Form中的控件增加自适应功能 转
  3. response.redirect和server.Transfer的差别详解
  4. .net对js和css、img剥离项目进行压缩优化、cdn加速
  5. 网络测试工具netperf
  6. [C#绘图]在半透明矩形上绘制字符串
  7. 企业邮件系统-Postfix安装使用
  8. 使用Jetty搭建Java Websocket Server,实现图像传输
  9. ELK 6安装配置 nginx日志收集 kabana汉化
  10. Spring Boot Web 自定义注解篇(注解很简单很好用)
  11. HTTP协议学习(一)
  12. mybatis,genarate自动生成代码
  13. JAVA-JSP动作元素之plugin、params、fallback
  14. python -修改文件中某一行
  15. 如何在IIS中设置HTTPS服务
  16. c# 添加注册表
  17. x64位windows 2003 server中“Server 对象 错误 &#39;ASP 0177 : 800700c1&#39; Server.CreateObject 失败”问题
  18. MFC学习(二):消息映射
  19. echarts3结合openlayers2实现Map类型图表
  20. linux下配置cvs服务器以及cvs常用命令

热门文章

  1. #Python编程从入门到实践#第二章笔记
  2. linux-shell——02
  3. Cache、Buffer的区别
  4. G - Dreamoon and NightMarket Gym - 101234G 优先队列+思路
  5. POJ:3292-Semi-prime H-numbers(艾氏筛选法拓展)
  6. java练习题——字符串
  7. 「微信小程序免费辅导教程」26,基础内容组件rich-text体验
  8. 内存压缩PK页面交换 解决内存问题谁更在行
  9. 利用Xtrabackup搭建GTID主从复制(一主一从)
  10. Jforum环境搭建