HDU 2594 Simpsons' Hidden Talents(kmp)
来源:互联网 发布:常见浏览器js兼容问题 编辑:程序博客网 时间:2024/05/12 21:33
Description
给出两个字符串s1和s2,问s1的前缀和s2的后缀最大匹配及其数量
Input
多组输入,每组用例占两行包括两个字符串s1和s2,以文件尾结束输入
Output
对于每组用例,输出s1的前缀和s2的后缀最大匹配及其数量
Sample Input
clinton
homer
riemann
marjorie
Sample Output
0
rie 3
Solution
将s1和s2连起来组成一个长串,用kmp算法求出长串的next数组,如果next[len]>minl则令len=next[len],(len为总串长,minl为s1,s2串长中较小值)直至next[len]<=minl,此时的next[len]即为最大匹配
Code
#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define maxn 111111char a[maxn],b[maxn];int nex[maxn];int main(){ while(scanf("%s%s",a,b)!=EOF) { int len1=strlen(a); int len2=strlen(b); int len=min(len1,len2);//最大匹配长度必须不大于两串串长较小值 for(int i=len1,j=0;i<len1+len2;i++,j++)//将a串b串合并 a[i]=b[j]; int la=len1+len2;//总串长 for(int i=0,j=-1;i<=la;i++,j++)//求next数组 { nex[i]=j; while(~j&&a[i]!=a[j]) j=nex[j]; } while(nex[la]>len) la=nex[la]; if(nex[la]==0)//最大匹配长度为0直接输出0 printf("0\n"); else { for(int i=0;i<nex[la];i++)//输出最大匹配 printf("%c",a[i]); printf(" %d\n",nex[la]);//输出最大匹配长度 } } return 0;}
0 0
- HDU 2594 Simpsons’ Hidden Talents(KMP)
- hdu 2594 Simpsons’ Hidden Talents(KMP)
- HDU 2594 Simpsons’ Hidden Talents (KMP)
- HDU 2594 Simpsons’ Hidden Talents(kmp)
- HDU 2594 Simpsons' Hidden Talents(kmp)
- HDU 2594 Simpsons’ Hidden Talents (kmp)
- HDU 2594 Simpsons’ Hidden Talents(KMP)
- HDU 2594 Simpsons’Hidden Talents(KMP)
- hdu 2594 Simpsons’ Hidden Talents(KMP)
- HDU 2594 Simpsons’ Hidden Talents (kmp)
- HDU 2594 Simpsons’ Hidden Talents(kmp)
- HDU-2594 Simpsons’ Hidden Talents(KMP)
- 【hdu 2594】Simpsons’ Hidden Talents(kmp)
- hdu 2594 Simpsons' Hidden Talents(KMP)
- HDU 2594 Simpsons’ Hidden Talents(KMP)
- KMP hdu-2594 Simpsons’ Hidden Talents
- HDU 2594 Simpsons’ Hidden Talents KMP
- HDU 2594Simpsons’ Hidden Talents(KMP运用)
- Activity和Task的启动模式有哪些?
- 我不会死性不改
- ArcGIS4Android开发----空间查询
- C的xml编程-libxml2(1) http://blog.sina.com.cn/s/blog_6a1837e90100ns2q.html
- Codeforces 437C The Child and Toy
- HDU 2594 Simpsons' Hidden Talents(kmp)
- java学习基础泛型和其他对象
- 一款基于微客服的仿微信的聊天软件
- 2015-08-31 阅读摘要
- 常规功能和模块自定义系统(cfcmms)—005开发环境搭建和创建项目
- 性能学习
- 国务院关于积极推进“互联网+”行动的指导意见
- java并发容器分析
- 链表排序