题解 CF236A 【Boy or Girl】
Level_Down · · 题解
这道题很水,我就来讲一个新方法。
首先我们开一个桶记录每个字母的出现次数:
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;//完美结束
}
可能我的方法不是最佳解法,但应该是最容易懂的。