HDU2594 Simpsons’ Hidden Talents KMP
来源:互联网 发布:mastercam车床编程教程 编辑:程序博客网 时间:2024/05/18 21:47
题意:给你两个字符串,问你第一个字符串前缀和第二个字符串的后缀最长匹配长度是多少?
思路: 简单的next数组的理解, 连接两字符串,在连接处加一个无关字符,如‘*’,这样做是为了保证不会出现连接后前后缀最大匹配值大于某个字符串的情况,然后直接输出next[strlen(str)]以及其前缀即可。
代码如下:
#include <bits/stdc++.h>using namespace std;const int maxn=50005;char p[maxn<<1];char p1[maxn];int NEXT[maxn<<1];void Op_NEXT(int n){ NEXT[0] = -1; int k = -1; int j = 0; while(j < n){ if(k == -1 || p[k] == p[j]){ j++; k++; NEXT[j] = k; } else{ k=NEXT[k]; } }}int main(){ ios::sync_with_stdio(false); memset(NEXT,0,sizeof(NEXT)); while(cin>>p>>p1){ int len1=strlen(p); int len2=strlen(p1); strcat(p,p1); int len=len1+len2; Op_NEXT(len); while(NEXT[len]>len1 || NEXT[len]>len2) len=NEXT[len]; int res=NEXT[len]; if(res){ for(int i=0;i<res;i++) cout<<p[i]; cout<<" "<<res<<endl; } else { cout<<res<<endl; } } return 0;}
0 0
- 【KMP】 hdu2594 Simpsons’ Hidden Talents
- hdu2594 Simpsons’ Hidden Talents kmp
- HDU2594 Simpsons’ Hidden Talents 【KMP】
- hdu2594 Simpsons’ Hidden Talents(KMP)
- HDU2594 Simpsons’ Hidden Talents【KMP】
- HDU2594 Simpsons’ Hidden Talents KMP
- HDU2594 Simpsons’ Hidden Talents KMP
- Simpsons' Hidden Talents hdu2594 kmp
- hdu2594 Simpsons’ Hidden Talents (kmp)
- 【hdu2594】Simpsons’ Hidden Talents——KMP
- HDU2594 Simpsons’ Hidden Talents(KMP)
- HDU2594:Simpsons’ Hidden Talents
- hdu2594-Simpsons’ Hidden Talents
- hdu2594 Simpsons’ Hidden Talents
- hdu2594 Simpsons’ Hidden Talents
- HDU2594 Simpsons’ Hidden Talents
- HDU2594 Simpsons’ Hidden Talents
- HDU2594-Simpsons’ Hidden Talents
- 在杭州的小屋
- C++第2次实验-学生成绩
- Ajax
- 关爱自闭症儿童,无界空间周边线上义卖
- 阿里巴巴校招内推一面总结
- HDU2594 Simpsons’ Hidden Talents KMP
- php学习日记1 ----面向对象基础
- myeclipse 安装AspectJ插件
- CDN图片加速服务
- 泛型第一发 #类泛型#
- 如何让ARM板启动的时候就运行自己的QT程序
- Ubuntu14.04 定时任务 cron(crontab)
- 21 API-IO流(字符流(编码表,转换流,FileReader,FileWriter,BufferedReader,BufferedWriter),IO流总结)
- 最详细的Log4j使用教程-http://www.codeceo.com/article/log4j-usage.html