HDU 2594 — Simpsons’ Hidden Talents
来源:互联网 发布:淘宝售后客服工作规范 编辑:程序博客网 时间:2024/06/06 17:41
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2594
题意:
给出两个字符串S1, S2,找出S1中最长的可以和S2的后缀匹配的前缀;
思路:
将S1作为模式串,S2作为目标串,用KMP就好,看到S2的最后一个字符时能匹配S1中的第几个字符;
#include<stdio.h> #include<string.h> const int maxn = 50005; char T[maxn], P[maxn]; int f[maxn], n, m; int 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++; if(i == n-1) return j; } } 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]; if(P[i] == P[j]) f[i+1] = j+1; else f[i+1] = 0; } } int main(){while(scanf("%s%s", P, T)!=EOF){n = strlen(T);m = strlen(P);getFail();int ans = find();if(ans == 0)printf("0\n");elseprintf("%s %d\n", T+(n-ans), ans);}return 0;}
0 0
- HDU 2594 — Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- HDU 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- HDU 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- HDU - 2594 Simpsons’ Hidden Talents
- HDU 2594 Simpsons’ Hidden Talents
- HDU 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents
- HDU 2594 Simpsons’ Hidden Talents
- iframe自适应高度(兼容多种浏览器)
- Java中由substring方法引发的内存泄漏
- 在Centos下安装部署SVN方法
- JavaScript学习笔记之类型之间的判断比较
- 【POJ 1942】 Paths on a Grid
- HDU 2594 — Simpsons’ Hidden Talents
- http_build_query
- CSS 超出隐藏实现限制字数的功能代码(多浏览器)
- 关于MD5值加密算法
- Python 使用正则表达式 - 2
- IE获取文件目录下的文件列表及ActiveXObject IE设置
- 分享git使用
- 数据结构实验图论:基于邻接矩阵/邻接表的广度优先搜索遍历
- verilog 生成块