题解 CF236A 【Boy or Girl】

· · 题解

这道题很水,我就来讲一个新方法。

首先我们开一个桶记录每个字母的出现次数:

int a[27];

然后就是最重要的部分了:

char s;
while (cin >> s)
    {
        a[s-96]++;
    }

这里我用了一个字符的妙用,由于输入的都是小写字母,

asall值从97开始增加,于是才有了这种写法。

存完后,只需要将a数组扫一遍即可。

奉上AC代码:

#include <bits/stdc++.h>
using namespace std;
int a[27],ans;
int main()
{
    char s;
    while (cin >> s)
        {
            a[s-96]++;//如上
        }
    for (int i = 1; i <= 26; i++)
        {
            if (a[i] != 0) ans++;//扫描a数组
            }   
    if (ans % 2 == 0) cout << "CHAT WITH HER!";
        else cout << "IGNORE HIM!";//最后的判断      
    return 0;//完美结束
 } 

可能我的方法不是最佳解法,但应该是最容易懂的。