Good morning [字符串]

来源:互联网 发布:2014上半年经济数据 编辑:程序博客网 时间:2024/05/22 14:40

Good morning [字符串]

时间限制: 1 Sec 内存限制: 128 MB

提交: 179 解决: 69 统计

题目描述

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

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

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

输入

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

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

输出

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

样例输入

aaavbbbddgggooooooddmmrrnnnniigoodmorninngoodmorning

样例输出

201

来源

CZY


字符串的简单运用

#include <iostream>#include <cstdio>#include <cstring>const int MAX=1e5+10;char str[MAX];int main(){         while(~scanf("%s" , str))     {          int len = strlen(str);  int A = 0 , B = 0 , C = 0, D = 0, E = 0 ,F = 0 , G = 0;//goodmorning     for(int i = 0; i < len; i++)      {        if(str[i] == 'g')        A++;        if(str[i] == 'o')        B++;        if(str[i] == 'd')        C++;        if(str[i] == 'm')        D++;        if(str[i] == 'r')        E++;       if(str[i] == 'n')        F++;        if(str[i] == 'i')        G++;  }  int ans = 0; while( len > 0)   {     A -= 2;     B -= 3;      C--;     D--;     E--;     F -= 2;     G--;      if(A < 0 || B < 0 || C < 0 || D < 0 || E < 0 || F < 0 || G < 0)           break;       else       {      if(G > 0)           {    ans++;              A++;          }               if(G == 0)              {               ans++;               break;}       }       len -= 11;  }   printf("%d\n",ans); }return 0; } 











原创粉丝点击