hdu2594kmp
来源:互联网 发布:淘宝摩托车准备店铺 编辑:程序博客网 时间:2024/06/14 02:52
题意:
给定两个字符串p和s,求字符串p的前缀和字符串s的后缀能匹配的最大长度,并输出匹配的子串
思路:
把s连接在p的后面,对新的字符串p求next数组,
#include <cstdio>#include <cstring>const int maxn = 100005;char p[maxn];int len,next[maxn];void getnext(char* p){ next[1] = 0; int k = 0; for(int i=2;i<=len;i++) { while(k!=0 && p[k+1]!=p[i]) k = next[k]; if(p[k+1] == p[i]) k++; next[i] = k; }}int main(){ while(scanf("%s",p+1)!=EOF) { len = strlen(p+1); p[++len] = '$'; scanf("%s",p+len+1); len+= strlen(p+len+1); getnext(p); for(int i=1;i<=next[len];i++) { printf("%c",p[i]); } if(next[len]) printf(" "); printf("%d\n",next[len]); } return 0;}
0 0
- hdu2594kmp
- hdu2594kmp
- hdu2594kmp
- Android ShutdownThread.java源码分析
- poj 1200 Crazy Search
- Maven3 安装使用(二)
- IOS开发~UISCrollView与UITableView嵌套使用终极解决方案
- PHP基础加强(第十五天)
- hdu2594kmp
- 和程序员约会的十个理由
- 谷歌Web中文开发手册:2创建内容和结构
- HDU 3360-National Treasures(最小点覆盖+奇偶匹配)
- sphinx 采用c扩展xmlpipe2数据源 .
- “浅拷贝”与“深拷贝”
- hdu Data Structure? 线段树
- BlueTooth: 蓝牙查寻的细节过程
- Oracle与MySQL的区别(待扩展)