HDU-1867-A + B for you again
来源:互联网 发布:windows exe elf 编辑:程序博客网 时间:2024/06/07 18:33
//这是一道字符串匹配的问题(KMP),我们先把它们按照题目要求,求出最大匹配数,然后比较,输出最大的,相同则输出字典数小的//
AC代码:
#include<stdio.h>#include<string.h>#define N 100005int 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;}
0 0
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- HDU-1867-A + B for you again
- HDU 1867:A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- hdu 1867 A + B for you again
- Hdu-1867 A + B for you again
- server建立以及svn使用
- 前端规范(持续)
- [小技巧] Windows 命令行显示英文
- (转)python学习笔记——Thread常用方法
- HDOJ 题目2888 Check Corners(二维RMQ)
- HDU-1867-A + B for you again
- 文章标题
- A20平台调试GPS模块
- diffrence between [[[[UIApplication sharedApplication] delegate] window] and [[UIApplication sharedA
- 白雪歌送武判官归京
- LeetCode之Word Break
- shiro使用手册
- 使用Markdown编辑器写博客
- Souvenir