HDU-1867-A + B for you again
2015-07-29 09:54
603 查看
//这是一道字符串匹配的问题(KMP),我们先把它们按照题目要求,求出最大匹配数,然后比较,输出最大的,相同则输出字典数小的//
AC代码:
AC代码:
#include<stdio.h> #include<string.h> #define N 100005 int next[N]; char s[N]; char t[N]; void get_next(char *s,char *t) { int len2=strlen(t); int i=0; int j=-1; next[0]=-1; while(i<len2) { if(j==-1||t[i]==t[j]) { i++; j++; next[i]=j; } else { j=next[j]; } } } int kmp(char *s,char *t) { int len1=strlen(s); int len2=strlen(t); memset(next,0,sizeof(next)); get_next(s,t); int i=0; int j=0; while(i<len1) { if(j==-1||s[i]==t[j]) { i++; j++; } else { j=next[j]; } } return j; } int main() { while(scanf("%s%s",t,s)!=EOF) { int k1=kmp(s,t); int k2=kmp(t,s); if(k1==k2) { if(strcmp(s,t)<0) { printf("%s%s",s,t+k1); } else { printf("%s%s",t,s+k2); } } else if(k1>k2) { printf("%s%s",s,t+k1); } else { printf("%s%s",t,s+k2); } printf("\n"); } return 0; }
相关文章推荐
- 关于出现( linker command failed with exit code 1)错误总结
- 2015 Multi-University Training Contest 3 1002 RGCDQ(hdu5317)
- ZOJ 3450 Doraemon's Railgun (DP·分组背包)
- C++使用localtime函数需要注意的地方http://blog.csdn.net/shellching/article/details/8114266
- zoj 3450Doraemon's Railgun
- HDU 5326 Work 并查集 (2015 Multi-University Training Contest 3 2015多校联合)
- HDU 5319 Painter (2015 Multi-University Training Contest 3 2015多校联合)
- STL中的模板类pair 和map http://blog.csdn.net/calvin_zcx/article/details/6072286
- hdu 5317 RGCDQ 2015 Multi-University Training Contest 3
- 线程安全C/C++ http://blog.csdn.net/huangxy10/article/details/8068653
- mysql_num_rows()的作用的功能!!! http://zhidao.baidu.com/link?url=E-LmBdz-E5ff5PKfiXucFY-wWBLV4_vt6Cmg2i4k
- 模拟+思维 HDOJ 5319 Painter
- 多校3 1004 Painter
- Train Problem I
- HDU 5319 Painter(模拟)
- EAIPChina航图查看器项目手记
- Design Pattern Explained 读书笔记三——Adapter
- RAID简介
- 20150728多校第三场1004 - Painter
- 2015 Multi-University Training Contest 3 1011