hdu2203kmp
2016-04-07 11:33
302 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2203
题意 给出主串 模式串 主串可以滚动,即1234->2341,
文能否匹配
可以将主串变为 主串+主串,这样所有的情况就都在内了
题意 给出主串 模式串 主串可以滚动,即1234->2341,
文能否匹配
可以将主串变为 主串+主串,这样所有的情况就都在内了
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int maxn=100005; char s1[maxn<<1],s2[maxn]; int nex[maxn],flag; void get_next(int len) { int i=0,j=-1; nex[0]=-1; while(i<len) { if(j==-1||s2[i]==s2[j]) { i++;j++; nex[i]=j; } else j=nex[j]; } } void kmp(int len1,int len2) { int i=0,j=0; get_next(len2); while(i<len1) { if(j==0||s1[i]==s2[j]) { i++;j++; } else j=nex[j]; if(j==len2) { flag=1; break; } } } int main() {while(~scanf("%s%s",s1,s2)) { int len1=strlen(s1); int len2=strlen(s2); if(len1<len2) { puts("no"); continue; } for(int i=0;i<len1;i++) s1[len1+i]=s1[i]; flag=0; kmp(len1<<1,len2); if(flag) puts("yes"); else puts("no"); } return 0; }
相关文章推荐
- eclipse使用git解决冲突
- 区间DP总结
- OpenCL Bug: Unrecognized Token during Kernel Compilation
- (二)PendingIntent
- mysql查询和索引优化
- 剑指offer-面试题31:连续子数组的最大和
- wildfly作为容器开发配置
- IOS 开发-UI初级 (二)视图和视图控制器(View,Viewcontroller)
- SQL Server 2005登录名,用户名,角色,架构之间的关系
- webview
- 局部打印插件 jquery.PrintArea.js
- c++第三次实验
- Mac下如何用SSH连接远程Linux服务器
- regsvr32的使用
- RVM无法加载公钥解决方法
- C++中的#和##运算符
- 如何使用命令行 Change SharePoint Farm Administrator?
- nodejs小记之jqueryfileupload异步图片文件上传 带上传进度
- 从mysql数据库中导入数据到solr4.5
- liunx 命令 之 文件与目录部分