【HPU】[1730]字符串
记录每个字母出现的次数然后计算就好了
一个有点弯的地方是首尾的两个g允许重叠
所以需要单独判断
#include<stdio.h>
#include<string.h>
char s[100200];
int main() {
while(scanf("%s",s)!=EOF) {
int l=strlen(s);
int a[7]= {0,0,0,0,0,0,0};
for(int j=0; j<l; j++) {
if(s[j]=='g')
a[0]++;
else if(s[j]=='o')
a[1]++;
else if(s[j]=='d')
a[2]++;
else if(s[j]=='m')
a[3]++;
else if(s[j]=='r')
a[4]++;
else if(s[j]=='n')
a[5]++;
else if(s[j]=='i')
a[6]++;
}
a[0]=a[0]-1;
a[1]=a[1]/3;
a[5]=a[5]/2;
int min=999999;
for(int j=0; j<7; j++)
if(min>a[j])
min=a[j];
printf("%d\n",min);
}
return 0;
}
题目地址:【HPU】[1730]字符串