hdu 2594 Simpsons’ Hidden Talents KMP
来源:互联网 发布:utorrent for linux 编辑:程序博客网 时间:2024/05/22 02:11
题意:
给定两个字符串a和b,找出a最长的前缀,使得该前缀正好是b的后缀。
题解:
标准的KMP算法,我们只要用a匹配b,匹配到末尾的时候,其匹配值就是答案了。
代码:
#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <iostream>#include <algorithm>#include <queue>#include <map>#include <vector>using namespace std;const int maxn=5e4+10;char a[maxn],b[maxn];int f[maxn];void getFail(char *a,int *f,int n){ int i,j; f[0]=f[1]=0; for(i=1;i<n;i++) { j=f[i]; while(j&&a[i]!=a[j])j=f[j]; f[i+1]=a[i]==a[j]?j+1:0; }}int find(char *a,char *b,int *f){ int i,j=0,n,m; n=strlen(a); m=strlen(b); getFail(b,f,m); for(i=0;i<n;i++) { while(j&&a[i]!=b[j])j=f[j]; if(a[i]==b[j])j++; } return j;}int main(){ while(scanf("%s%s",a,b)!=EOF) { int i,j,k; k=find(b,a,f); if(k==0)printf("0\n"); else { for(i=0;i<k;i++)printf("%c",a[i]); printf(" %d\n",k); } } return 0;}
0 0
- HDU 2594 Simpsons’ Hidden Talents(KMP)
- KMP hdu-2594 Simpsons’ Hidden Talents
- HDU 2594 Simpsons’ Hidden Talents KMP
- HDU 2594Simpsons’ 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 )
- QT 版本历史
- (CF) D. A Lot of Games
- Hadoop2.2源代码编译
- ubantu /usr/include/features.h:324:26: 致命错误: bits/predefs.h:没有那个文件或目录编译中断 错误解决
- 实现DataGridView的多层表头
- hdu 2594 Simpsons’ Hidden Talents KMP
- iOS中防止多个按钮同时点击出现的问题
- 如何理解“可靠性”和“可用性”?
- 【最短路算法模板】
- kmemleak 内存泄露检测
- ViewPager循环效果
- 编程之美 4.2 瓷砖覆盖地板 扩展问题
- xcode 调试的时候不显示 c 变量值
- HDU 4607 Park Visit【树的直径】