hdu 1867——A + B for you again(KMP)
来源:互联网 发布:php cookie能存多少 编辑:程序博客网 时间:2024/05/28 16:23
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1867
解题思路:KMP算法求字符串匹配,不过要小修改一下,KMP判断s1是否为s2的子串,而本题若s2的前部分与s1的后部分匹配,则连在一起,否则按照字典顺序连接在一起
#include <stdio.h>#include <string.h>#include <stdlib.h>char s1[100005],s2[100005];//KMP算法void getNext(char *s,int *next){int j,k;next[0]=-1;j=0;k=-1;int l=strlen(s);while(j<l){if(k==-1 || s[j]==s[k]){j++;k++;next[j]=k;}elsek=next[k];}}int kmp(char *s,char *p){int next[100005];int i,j;i=0;j=0;getNext(p,next);int l1=strlen(s),l2=strlen(p);while(i<l1 && j<l2){if(j==-1 || s[i]==p[j]){i++;j++;}elsej=next[j];}if(i>=l1)return j;elsereturn 0;}int main(){int i;while(scanf("%s%s",s1,s2)!=EOF){int index1=kmp(s1,s2);int index2=kmp(s2,s1); //分别记下匹配位置的下标if(index1>index2){printf("%s",s1);for(i=index1;s2[i];i++)printf("%c",s2[i]);}else if(index2>index1){printf("%s",s2);for(i=index2;s1[i];i++)printf("%c",s1[i]);}else{if(strcmp(s1,s2)>0){printf("%s",s2);for(i=index1;s1[i];i++)printf("%c",s1[i]);}else{printf("%s",s1);for(i=index1;s2[i];i++)printf("%c",s2[i]);}}printf("\n");}return 0;}
- hdu 1867——A + B for you again(KMP)
- KMP——HDU 1867 A + B for you again
- HDU 1867 A + B for you again——kmp
- hdu -- 1867 A + B for you again (KMP)
- KMP-hdu-1867 A + B for you again
- hdu 1867 A + B for you again (KMP)
- HDU 1867 A + B for you again KMP
- hdu 1867 KMP A + B for you again
- HDU 1867 A + B for you again(简单KMP)
- HDU 1867 A + B for you again (KMP)
- HDU(1867)A + B for you again (KMP)
- hdu 1867 A + B for you again (kmp)
- hdu 1867 A + B for you again kmp
- hdu 1867 A + B for you again(KMP)
- hdu 1867 A + B for you again KMP算法
- hdu 1867 A + B for you again(KMP)
- HDU 1867 A + B for you again KMP题解
- HDU 1867 A + B for you again (KMP应用)
- 高效代码审查的十个经验
- 面试100题系列之11在树中找到符合条件的路径
- FD快捷键
- cocos2d 横竖屏幕 适配ios6
- 9i10g11g编程艺术——锁和闩
- hdu 1867——A + B for you again(KMP)
- qemu-kvm部分流程/源代码分析
- Sidr – 创建侧栏和响应式菜单的最佳 jQuery 插件
- mac下图片批量处理
- [ZCJ][HTML]字体设置问题
- e2label , fstab, mkfs, partprobe, fdisk
- Cannot load /modules/libphp5.so into server: libXpm.so.4
- 策略模式(Strategy Pattern)(一):策略模式介绍
- 如何避免重构带来的危险