Good morning [字符串]

阅读: 评论:0

Good morning [字符串]

Good morning [字符串]

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

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

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

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

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

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

样例输入
aaavbbbddgggooooooddmmrrnnnnii
goodmorninn
goodmorning
样例输出
2
0
1

#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define ll long long
char s[100005];
int main(){while (~scanf("%s",s)){int len = strlen(s);int a[150];memset(a,0,sizeof(a));for (int i = 0 ; i < len; ++i){if (s[i] == 'g') a[s[i]-'a']++;if (s[i] == 'o') a[s[i]-'a']++;if (s[i] == 'm') a[s[i]-'a']++;if (s[i] == 'd') a[s[i]-'a']++;if (s[i] == 'r') a[s[i]-'a']++;if (s[i] == 'n') a[s[i]-'a']++;if (s[i] == 'i') a[s[i]-'a']++;    }if (a['g'-'a'] >= 3) a['g'-'a'] += 1;a['g'-'a']/=2;a['o'-'a']/=3;a['n'-'a']/=2;  int min = 0x3f3f3f3f;if (min > a['g'-'a']) min = a['g'-'a'];if (min > a['o'-'a']) min = a['o'-'a'];if (min > a['d'-'a']) min = a['d'-'a'];if (min > a['m'-'a']) min = a['m'-'a'];if (min > a['r'-'a']) min = a['r'-'a'];if (min > a['n'-'a']) min = a['n'-'a'];if (min > a['i'-'a']) min = a['i'-'a'];printf("%dn",min);}return 0;
}

一道水题 code速度太慢 代码而且麻烦
续更

本文发布于:2024-02-05 08:33:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170728164064940.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   Good   morning
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23