问题 B: 영어
时间限制: 1 Sec 内存限制: 128 MB提交: - 解决: -
[ 提交][ 状态][ 讨论版]
题目描述
你们猜猜영어是什么意思?
??????????????????????
"English is very importan!",诸如此类的声音不停的在Ocean的耳边出现。
现在Ocean为了自己的小小梦想开始了英语的复习之路,但是他碰到一个小问题,需要你来帮助他。
如:字符串"EnglishEnglish"包含了$2$个"English"子串。
PS:子串是指连续的一段字符串,题目要求的合法子串必须是不重叠的。
本题大家请使用scanf("%s", str);输入。
输入
第一行输入一个整数$T$,代表有$T$组测试数据。
每组数据输入一个字符串$str$。
注:$1 <= T <= 100,1 <= |str| <= 10000。$
每组数据输入一个字符串$str$。
注:$1 <= T <= 100,1 <= |str| <= 10000。$
输出
对每组测试数据,输出一个整数代表$str$里面一共包含了多少个"English"子串。
样例输入
3
EnglishEnglish
EnglishEnglisp
EnglishEnglisH
#include<stdio.h>
#include<string.h>
int main()
{
int N;
int len;
char str[10003];
scanf("%d",&N);
getchar();
int sum=0;
while(N--)
{
int flag=0;
memset(str,0,sizeof(str));
scanf("%s",str);
sum=0;
char str1[8]="English";
len=strlen(str);
for(int i=0; i<len; i++)
{
flag=0;
int temp=0;
// printf("%d ",i);
if(str[i]=='E')
{
flag=2;
temp=0;
for(int j=i; j<i+7; j++)
{
if(str[j]!=str1[temp++])
{
// printf("***");
flag=1;
break;
}
}
if(flag==2)
{
// printf("&&&");
sum++;
i+=6;
}
}
}
printf("%d\n",sum);
}
}