• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dwtfukgv
博客园    首页    新随笔    联系   管理    订阅  订阅
UESTC 486 Good Morning (水题+坑!)

题意:给你一行字符串,让你找其中蕴含的“good morning"的次数。

析:看起来很水么,多简单,只有统计一下其中字母的出现的次数,然后除以相应的个数。

但是很不幸的是WA,而且是在test1,说明你样例都没过应该。这就是题的坑。

1.坑是这个空格也算一部分,第二个样例可能最后一个空格没打上,所以误导了。但是也这样也是WA。

为什么呢?因为还少考虑了一种情况。

2.“good morningood morning"这个是算2个的,也就是说g这个字母要特殊考虑,也就是g只要比次数多1就行。

代码如下:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <map>

using namespace std;
const int maxn = 10000 + 10;
char s[maxn];
int a[30];

int main(){
    int T;  cin >> T;
    getchar();
    for(int kase = 1; kase <= T; ++kase){
        gets(s);
        int len = strlen(s);
        memset(a, 0, sizeof(a));
        int t = 0;
        for(int i = 0; i < len; ++i)
            if(' ' == s[i]) ++t;
            else if(s[i] >= 'a')  ++a[s[i]-'a'];

        int m = a['d'-'a'];
        m = min(m, a['i'-'a']);
        m = min(m, a['r'-'a']);  m = min(m, a['o'-'a']/3);
        m = min(m, a['m'-'a']);  m = min(m, a['n'-'a']/2);
        m = min(m, t);   m = min(m, a['g'-'a']-1);
        printf("Case #%d: %d\n", kase, m);
    }
    return 0;
}

 

posted on 2016-06-02 12:31  dwtfukgv  阅读(246)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3