hdu 2594 Simpsons’ Hidden Talents (kmp扩展)
来源:互联网 发布:设计淘宝店铺标志图片 编辑:程序博客网 时间:2024/06/04 23:30
题意:
给出两个串,求既是第一个串的前缀又是第二个串的后缀的最长公共部分。
题解:
这题两种做法,一种是第二个串和第一个串模式匹配,找出匹配的公共部分,但是情况要分三种来输出很麻烦。
直接用性质,因为我们知道next[len]表示的串的最长公共前后缀,那么把第二个串接到第一个串的后面直接求出next数组即可,但是还有一种情况要特判,就是最长公共前轴缀重叠的时候,我YY了几组数据得到了发现了一个规律,如果有重复的情况即使把重复部分去掉前后的串也是满足公共前后缀的!!那么就好办了,答案只要在next[i],len1,len2中找最小的即可!!
#include<iostream>#include<math.h>#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<map>using namespace std;//typedef long long lld;const int oo=0x3f3f3f3f;//const lld OO=1LL<<61;const int MOD=10007;const int maxn=50005;char str[maxn<<1],s[maxn];int next[maxn<<1];void get_next(int len){ int i=0;next[i]=-1; int j=-1; while(i<len) { if(j==-1||str[i]==str[j]) { i++;j++; next[i]=j; } else j=next[j]; }}int main(){ int n,l1,l2; while(scanf("%s%s",str,s)!=EOF) { l1=strlen(str); l2=strlen(s); strcat(str,s); int len=l1+l2; get_next(len); int ans=min(next[len],min(l1,l2)); if(ans==0) { printf("%d\n",ans); continue; } for(int i=0;i<ans;i++) putchar(str[i]); printf(" %d\n",ans); } return 0;}/**addfgaddfgaddadaddad*/
0 0
- 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运用)
- 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
- 图片透明度。。RatingBar
- poj3281
- POJ-3764(Trie)
- Android--数据库操作辅助类:SQLiteOpenHelper
- 服务器和客户端同步状态,客户端不能依赖服务器的响应
- hdu 2594 Simpsons’ Hidden Talents (kmp扩展)
- 对C++继承的一点理解
- Java观察者模式 : Observer / Observable
- 家族解题
- 学习了一段时间WEB前端开发,谈一谈个人理解
- 工具[Source Insight]_Source Insight基本使用(1)
- SRM 649 div2 500(dp)
- Android Drawable 转化成 Bitmap
- 居然没拿到offer,失落