北京林业大学“计蒜客”杯程序设计竞赛 网络赛 G. 易彰彪的一张表 (KMP)
来源:互联网 发布:淘宝删除邀请我的回答 编辑:程序博客网 时间:2024/06/07 01:07
易彰彪最近有点奇怪,一向爱打游戏他最近居然盯着一张全是大小写字母的表在看,好像在找什么东西。他说,这是他女神给他的一张表,他需要回答女神的问题——在忽略大小写(即大写字母和小写字母视为同一字母)的情况下,是否能在表中找到某一连续的字符串(第 i 行的尾部和第 i+1 行的头部视为相连)。但是英语不好的易彰彪一看到字母就头晕,聪明的你能帮他解决这个问题吗?
输入格式:
第一行会输入两个整数 n 和 m,分别是表的列数和行数,1≤n,m≤30。
第 2 行到第 n+1 行,每行输入一个长度为 m的字符串,表示表的内容。
第 n+2 行输入易彰彪想要在表中找到的字符串。
输出格式:
如果按照题目描述能够在表中找到目标字符串,输出YES
, 否则输出NO
。
样例1
输入:
5 5yiZhanGBiaoaerghtyfjawertyizhangbiao
输出:
YES
我的代码未通过判题数据。。。
#include <iostream>#include <string.h>#include <stdio.h>#include <ctype.h>#define a 33using namespace std;int Next[100000],cnt;char q[a][a],s[a*a],p[a*a];void getnext(int len){ Next[0]=-1; int j=0; int k=-1; while(j<len-1) { if((k==-1)||(p[j]==p[k])) { j++; k++; if(p[j]!=p[k]) Next[j]=k; else Next[j]=Next[k]; } else k=Next[k]; }}void kmp(int slen,int plen){ int i=0,j=0; getnext(plen); while (i<slen) { if(j==-1||s[i]==p[j]) { i++; j++; } else { j=Next[j]; } if(j==plen) { cnt++; j=Next[j]; } }}int main(){ int n,slen,plen,e,f,i,j; cin>>e>>f; int o=0; for (i=0; i<f; i++) for(j=0; j<e; j++) { cin>>q[i][j]; s[o++]=q[i][j]; } getchar(); gets(p); slen=strlen(s); plen=strlen(p); cnt=0; for(i = 0; i < slen; i++) s[i] = toupper(s[i]); for(i = 0; i < plen; i++) p[i] = toupper(p[i]); kmp(slen,plen); if(cnt==0) cout<<"NO"; else cout<<"YES"; return 0;}
0 0
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 G. 易彰彪的一张表 (KMP)
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 G. 易彰彪的一张表
- 字符串 —— 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 —— 易彰彪的一张表
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛--易彰彪的一张表
- 第二届北京林业大学“计蒜客”杯程序设计竞赛 G题 易彰彪的一张表
- “计蒜客”杯程序设计竞赛 网络赛 G 易彰彪的一张表 (BF字符串匹配)
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛
- 第二届北京林业大学“计蒜客”杯程序设计竞赛 Problem F - 易彰彪的一张表
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 A. 喝酒
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 . candy
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 乘电梯
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 总结
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 A. 喝酒
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 A-喝酒【模拟】
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 C-Candy【模拟】
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 马踏棋盘的问题
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 B. 大钉骑马走江湖 (广搜)
- 我是钓~!~!~!@鱼测试
- widget点击进入应用遇到的问题
- VS2012 MFC 相关问题
- 搜索——1015
- UVA_11517_Exact Change
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 G. 易彰彪的一张表 (KMP)
- lua 元方法
- Github的项目托管
- 成绩登记与查询系统App
- Shiro学习之身份验证
- sql常用函数instr()和substr()
- iOS 关于MVC MVVM的理解(一)
- 跟我学AngularJs:Directive指令用法解读(下)
- c# 中button加图片