1279: Good morning

来源:互联网 发布:男装比较好的淘宝店铺 编辑:程序博客网 时间:2024/05/14 21:39

1279: Good morning 

题目描述

给定一个只有小写字母构成的非空字符串,可以从字符串中任选字符并任意规定顺序,每个字符只能用一次。

最多可以构成多少个"goodmorning"子串(可以重叠)。

比如说:字符串aaavbbbddgggooooooddmmrrnnnnii,可以构成goodmorningoodmorning,共2个。

输入

有多组测试数据,请处理到文件结束。

每组数据给定一个只有小写字母构成的非空字符串str。后台所有数据保证1 <= |str| <= 10^5。

输出

每组数据输出一个整数,表示最多可以构成的"goodmorning"子串。

样例输入

aaavbbbddgggooooooddmmrrnnnniigoodmorninngoodmorning

样例输出

201
思路:统计各个字符的个数,注意一下g字符就可以;

#include<cstdio>#include<cstring>#include<cmath>#include<queue>#include<stack>#include<algorithm>#include<iostream>using namespace std;char a[100010];int b[100];int main(){    while(~scanf("%s",a))    {        int len=strlen(a);        memset(b,0,sizeof(b));        for(int j=0;j<len;j++)        {            if(a[j]=='g')            {                b[0]++;            }            if(a[j]=='o')            {                b[1]++;            }            if(a[j]=='d')            {                b[2]++;            }            if(a[j]=='m')            {                b[3]++;            }            if(a[j]=='r')            {                b[4]++;            }            if(a[j]=='n')            {                b[5]++;            }            if(a[j]=='i')            {                b[6]++;            }        }        b[0]=b[0]-1;        b[1]=b[1]/3;        b[5]=b[5]/2;        sort(b,b+7);        printf("%d\n",b[0]);    }    return 0;}

0 0
原创粉丝点击