【HPU-2016校赛-B】영어
来源:互联网 发布:python老男孩10期网盘 编辑:程序博客网 时间:2024/06/08 15:31
点击打开链接
영어
Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %lluDescription
你们猜猜영어是什么意思?
??????????????????????
"English is very importan!",诸如此类的声音不停的在Ocean的耳边出现。
现在Ocean为了自己的小小梦想开始了英语的复习之路,但是他碰到一个小问题,需要你来帮助他。
如:字符串"EnglishEnglish"包含了
PS:子串是指连续的一段字符串,题目要求的合法子串必须是不重叠的。
本题大家请使用scanf("%s", str);输入。
Input
第一行输入一个整数T ,代表有T 组测试数据。
每组数据输入一个字符串str 。
注:1<=T<=100,1<=|str|<=10000。
每组数据输入一个字符串
注:
Output
对每组测试数据,输出一个整数代表str 里面一共包含了多少个"English"子串。
Sample Input
3EnglishEnglishEnglishEnglispEnglishEnglisH
Sample Output
211
// 题解: 算法 KMP模板直接用
//代码如下:
#include <stdio.h>#include <stdlib.h>#include <string.h>char s[11111],t[10]={'E','n','g','l','i','s','h'};int next[11111];int kmp(char *s,int n,char *t,int m){int i = 0;int j = 0;int k = 0;while (i < n ) { if (j == -1 || s[i] == t[j]) { ++i; ++j; if (j == m) k++; }else j = next[j]; }return k;}void getnext(char *t,int m){int i = 0;int j = 0;next[0] = -1;j = next[i];while (i <m) { if (j == -1 || t[i] == t[j]) next[++i] = ++j; else j = next[j]; }}int main(){int m;scanf ("%d",&m);while (m--) { scanf ("%s",&s); int l1,l2; l1 = strlen(s); l2 = strlen(t); getnext(t,l2);printf ("%d\n",kmp(s,l1,t,l2)); }return 0;}
阅读全文
0 0
- 【HPU-2016校赛-B】영어
- 【HPU】 1187 영어
- HPU-1706-牛B
- hpu暑假训练B
- hpu暑假训练 B
- hpu暑假训练 B
- 【HPU-2016校赛-J】Judge
- 【HPU-2016校赛-G】確率
- 【HPU】1392 分隔A+B
- 【HPU-2016校赛-D】Ou à
- 1412202026-hpu-1000:A+B Problem
- HPU 1002 A + B Problem II【大数】
- hpu 问题 B: 魏好看买折纸
- hpu暑假训练 B 矩阵乘法【矩阵】
- hpu vj【1391】矩阵A+B
- HPU
- [HPU
- [HPU
- HTML菜鸟入门5
- 【HPU1194】Judge [快速幂]
- C++容器
- C# 字符分割与统计_递进版
- 数据库中插入数据
- 【HPU-2016校赛-B】영어
- 博弈模板(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)
- 设计模式概括
- hdu 4786 生成树~
- 欢迎使用CSDN-markdown编辑器
- 笔试题 6
- 【BZOJ】1477 青蛙的约会 扩欧
- 微信小程序,通过事件传递数据
- 编程测试题-小猴子摘桃最多摘多少