hdu 2594 Simpsons’ Hidden Talents(KMP)
2016-01-23 19:09
357 查看
题意:给定两个字符串s1,s2,找出s1的前缀和s2的后缀的公共长度。
思路:合并字符串后求next数组。
思路:合并字符串后求next数组。
#include<iostream> #include<stdio.h> #include<string.h> #include<string> using namespace std; char s1[100010],s2[50005]; int _next[100010]; void get_next(char a[]) { int i=-1,j=0,len=strlen(a); _next[0]=-1; while(j<len) { if(i == -1 || a[i] == a[j])_next[++j]=++i; else i=_next[i]; } return; } int main() { while(cin>>s1>>s2) { int lena=strlen(s1),lenb=strlen(s2),len=lena+lenb; strcat(s1,s2); get_next(s1); while(_next[len]>lena || _next[len]>lenb) len=_next[len]; len=_next[len]; for(int i=0; i<len; ++i) cout<<s1[i]; if(len) cout<<' '; cout<<len<<endl; } return 0; }
相关文章推荐
- What is CPU core/die/package
- leetcode之 Pascal's Triangle && Pascal's Triangle II
- [iOS]监控手机虚拟键盘弹出,消失的通知简单使用
- 这些年,建立的做人做事的准则
- Vigenère密码题解
- iOS中将汉字转换成拼音的方法
- ABP理论学习之OData集成(新增)
- cron 示图
- Structs2或者SSH项目中使用AJAX做的输入提示
- gvim 创建按*层级缩进的diary类型文件
- css3中关于伪类的使用
- Android自带模拟器的安装
- JS addEventListener参数解析
- Springmvc学习笔记(4)之复杂参数类型绑定、校验、数据回显和异常处理
- MediaWiki优化移动设备访问体验-MobileFrontent
- 【转】更简单的非递归遍历二叉树的方法
- 设计模式学习笔记—命令模式
- SugarCRM源码分析之本地化货币
- C++学习笔记(二) bool const 和 #define 结构体内存对齐
- 英伟达和 Valve 携手推进 Vulkan 开发,准备取代 OpenGL