题目是中文的,应该不用再说了!直接上代码,因为数组1W还是多组测试,所以不能用多重循环搞!看了提交状况最多也就几十MS.吓了!
后面顺便给出两组测试数据!
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
char st[10100];//不解释
int tot,i,j,cnt,an[5];//数组an是用来存hapy的
while(gets(st)){
tot=0;
memset(an,0,sizeof(an));
for(i=0;st[i]!=0;i++){
if(st[i]=='h') an[0]++;//第一个,遇见就+1
else if(st[i]=='a'&&an[1]<an[0]){//当h有了再+1
if(an[1]==an[2]) tot=0;//小心a前面有一个p
an[1]++;
}
else if(st[i]=='p'&&!tot) tot++;//下面三行不解释
else if(st[i]=='p'&&tot==1&&an[2]<an[1]) an[2]++,tot=0;
else if(st[i]=='y'&&an[3]<an[2]) an[3]++;
}
printf("%d\n",an[3]);//看y的个数是多少!!
}
return 0;
}
/*hhhhhaaaaaaaaaaaappppppppyyyyyy
hhapapppyy 2
hpappy 1
*/