HDU 2594 Simpsons’ HiddenTalents(KMP:后缀与前缀)
来源:互联网 发布:手机淘宝怎么退货退款 编辑:程序博客网 时间:2024/05/18 20:11
HDU 2594 Simpsons’ HiddenTalents(KMP:后缀与前缀)
http://acm.hdu.edu.cn/showproblem.php?pid=2594
题意:
给定两个串S1和S2,你要找到S1的最长前缀,且这个前缀还要是S2的后缀.
分析:
本题只需要利用KMP计算串S2的后缀能匹配S1的前缀是多长即可。即S2作为目标串,S1作为模板串。然后用S1去匹配S2,看看S2中i位置能匹配S1串最长前缀的长度ex[i]。
AC代码:
#include <iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;const int MAXN=50000+1000;char T[MAXN],P[MAXN];int f[MAXN],ex[MAXN];int n,m;void getFail(){ f[0]=f[1]=0; for(int i=1;i<m;i++) { int j=f[i]; while(j && P[i]!=P[j]) j=f[j]; f[i+1] = (P[i]==P[j])?j+1:0; }}void find(){ int j=0; for(int i=0;i<n;i++) { while(j && T[i]!=P[j]) j=f[j]; if(T[i]==P[j])j++; ex[i]=j; }}int main(){ while(scanf("%s %s",P,T)==2) { n=strlen(T); m=strlen(P); getFail(); find(); if(ex[n-1]==0) printf("0\n"); else { for(int i=0;i<ex[n-1];i++) printf("%c",P[i]); printf(" %d\n",ex[n-1]); } } return 0;}
0 0
- HDU 2594 Simpsons’ HiddenTalents(KMP:后缀与前缀)
- HDU 2594 Simpsons’ Hidden Talents(KMP求前缀后缀子串匹配)
- hdu 2594 Simpsons’ Hidden Talents (KMP求第一串前缀和第二串后缀最大值)
- HDU 2594 Simpsons’ Hidden Talents 两字符串前缀与后缀的最长公共部分
- [HDU 2594]Simpsons’ Hidden Talents[kmp求公共前后缀]
- hdoj 2594 Simpsons’ Hidden Talents 【KMP】【求串的最长公共前缀后缀】
- HDU 2594 Simpsons’ Hidden Talents(s1的前缀是s2的后缀)
- 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)
- iReport专题学习之报表元素03
- 使用ENVI打开raw格式影像
- 玩玩儿Flyway:数据库迁移
- pentesterlab学习记录-week3
- 九度1464:Hello World for U
- HDU 2594 Simpsons’ HiddenTalents(KMP:后缀与前缀)
- Java List/ArrayList操作示例----添加/排序/取子块/删除/追加元素
- 启动app时 出现程序默认标题栏 解决办法
- Java第4周实验
- 第六周项目2-对象作为数据成员
- 求3个处理机同时工作完成7个任务所用时间
- AOV网络与拓扑(二)——实现
- 黑马程序员 OC------内存管理学习
- java类加载的原理