hdu1867—A + B for you again
来源:互联网 发布:yum安装ruby最新版本 编辑:程序博客网 时间:2024/06/07 15:18
传送门:点我
Sample Input
asdf sdfgasdf ghjk
Sample Output
asdfgasdfghjk
注意:题目要求的是最短的字符串能包含所给的两个字符串,这里的包含一定是前一部分或后一部分包含,不能中间包含
#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#include<string>#define N 100005using namespace std;int Next[N];char ss1[N],ss2[N];int kmp(char s1[],char s2[])//s2加在s1上{ int i,j; int len2=strlen(s2); for(i=1,j=0; i<len2; i++) { while(j>0&&s2[i]!=s2[j]) j=Next[j-1]; if(s2[i]==s2[j]) j++; Next[i]=j; } int len=strlen(s1); for(j=0,i=0; i<len; i++) { while(j>0&&s1[i]!=s2[j]) j=Next[j-1]; if(s1[i]==s2[j]) j++; if(j==len2) break; } if((j==len2&&i==len-1)||i==len)//s1和s2一块结束和s1结束s2未结束的情况就返回j return j; return 0;//此情况是s2在s1中间}int main(){ char s1[N],s2[N]; int i; while(~scanf("%s",s1)) { scanf("%s",s2); int len1=strlen(s1); int len2=strlen(s2); int k1=kmp(s1,s2); int k2=kmp(s2,s1); if(k1>k2||(k1==k2)&&strcmp(s1,s2)<0)//k1,k2其实就是重叠的部分 { printf("%s",s1); for(i=k1; i<len2; i++) printf("%c",s2[i]); } else { printf("%s",s2); for(i=k2; i<len1; i++) printf("%c",s1[i]); } cout<<endl; } return 0;}
阅读全文
0 0
- hdu1867—A + B for you again
- 【KMP】 hdu1867 A + B for you again
- HDU1867:A + B for you again
- hdu1867 A + B for you again KMP
- hdu1867 A + B for you again
- HDU1867 A + B for you again
- hdu1867 A + B for you again (KMP)
- HDU1867 A + B for you again
- HDU1867 - A + B for you again(KMP)
- hdu1867---A + B for you again
- HDU1867:A + B for you again(KMP)
- hdu1867 A + B for you again(kmp)
- HDU1867:A + B for you again【kmp】
- 【hdu1867】A + B for you again——KMP
- HDU1867 A + B for you again KMP应用
- A + B for you again hdu1867(KMP的应用)
- 【KMP】hdu1867(A + B for you again) 杭电java a题真坑
- A + B for you again
- CSS—常用选择器
- POJ 2455 Secret Milking Machine 最大流建模
- 并发容器及典型源码分析
- 如何在生产环境使用Btrace进行调试
- 运维-安装系列文件之操作步骤
- hdu1867—A + B for you again
- Visual Studio中使用开源二维码QR库libqr
- 网页编程--CSS(一)
- HDOJ1558 线段相交问题+并查集处理
- 邻接矩阵/邻接表的遍历方法
- pycharm右键为什么会出现 "Run 'Unittests' in xxx.py"
- C++模板实现双向链表
- spark2.2.0源码学习过程记录:Day1 Day2
- Java并发编程的暗自努力(一)初步介绍