分析:一开始递归了一下,果然就 TLE 了,然后看了解题报告,豁然开朗,觉得解法挺巧妙的,看代码比较清楚就不在赘述了~
代码:
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
#define M 10010
char s[M];
int main()
{
int len;
int h,a,p,y;
while(gets(s)){
len=strlen(s);
h=a=p=y=0;
for(int i=0;i<len;i++){
if(s[i]=='h') h++;
else if((s[i]=='a')&&a<h) a++;
else if((s[i]=='p')&&(p/2)<a) p++;
else if((s[i]=='y')&& y<(p/2)) y++;
}
printf("%d\n",y);
}
return 0;
}