问题标题: 酷町堂:5418

0
0
已解决
武建豪
武建豪
中级天翼
中级天翼

5418   找朋友经验值:0

题目描述 Description

经猫联邦调查局调查发现,从一个人的网名可以推断出他的性别!
如果一个人的网名中,不同的字符的数量是奇数,那么这个人是男生;如果一个人的网名中,不同的字符数量是偶数,那么这个人是女生。
现在给出一个网名,请帮助酷町猫判断,他究竟是男生还是女生。

输入描述 Input Description

一个字符串,字符串不带空格

输出描述 Output Description

如果是男生,输出"boy";如果是女生,输出"girl"

样例输入 Sample Input

样例输入1 wjmzbmr 样例输入2 xiaodao

样例输出 Sample Output

样例输出1 girl 样例输出2 boy

数据范围及提示 Data Size & Hint

样例1:w、j、m、z、b、r,共6个,是偶数
样例2:x、i、a、o、d,共5个,是奇数

武建豪在2021-03-18 23:14:54追加了内容

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int count = 0;
    int num[128] = { 0 };
    string a;
    getline(cin, a);
    for (int i = 0; i < a.length(); i++)
    {
        if (a[i] >= 0 && a[i] <= 127)
        {
            num[a[i]]++;
        }
    }
    for (int i = 0; i < 127; i++)
    {
        if (num[i] != 0){
            count++;
            if(a[i]%2==1){
                cout<<"boy";
                break;
            }
            if(a[i]%2==0){
                cout<<"girl";
                break;
            }
        }
    }
    cout << count;
    return 0;
}

武建豪在2021-03-19 23:08:32追加了内容

歪歪歪,来人啊

武建豪在2021-03-20 10:53:17追加了内容

歪歪歪

武建豪在2021-03-27 20:50:34追加了内容

武建豪在2021-04-07 23:17:48追加了内容

千斤顶


0
已采纳
陈正朔
陈正朔
初级光能
初级光能

你的代码实在荒唐,必须从写

我的思路

遍历字符串,如果其对应桶元素为0,则cnt++,其桶元素置为1

最后如果cnt%2==0  输出girl

否则输出boy

核心

for(int i=0;i<s.size();i++){
        if(b[int(s[i])]==0){
            b[int(s[i])]=1;
            cnt++;
        }
    }

注意,b数组要定义在主函数上面

0
0
我要回答