AcWing——4785. 奇偶

81 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第34天,点击查看活动详情

AcWing——4785. 奇偶

4785. 奇偶 - AcWing题库

给定一个由小写字母组成的字符串,请你统计其中包含的不同小写字母数量。

如果给定字符串中包含奇数个不同小写字母,则输出 odd

如果给定字符串中包含偶数个不同小写字母,则输出 even

输入格式

共一行,一个由小写字母组成的字符串。

输出格式

共一行,按题目要求输出答案。

如果给定字符串中包含奇数个不同小写字母,则输出 odd

如果给定字符串中包含偶数个不同小写字母,则输出 even

数据范围

所有测试点满足,给定字符串的长度范围 1,100

输入样例1:

wjmzbmr

输出样例1:

even

输入样例2:

xiaodao

输出样例2:

odd

输入样例3:

sevenkplus

输出样例3:

even

问题解析

用哈希表记录下所有字符的出现情况,然后查看哈希表mymap的大小,再根据哈希表的大小输出结果。

  • 如果哈希表mymap的大小为偶数,说明有偶数个不同的小写字符,输出even。
  • 如果哈希表mymap的大小为奇数,说明有奇数个不同的小写字符,输出odd。

AC代码

#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<math.h>
#include<set>
#include <random>
#include<numeric>
#include<string>
#include<string.h>
#include<iterator>
#include<fstream>
#include<map>
#include<unordered_map>
#include<stack>
#include<list>
#include<queue>
#include<iomanip>
#include<bitset>//#pragma GCC optimize(2)
//#pragma GCC optimize(3)#define endl '\n'
#define int ll
#define PI acos(-1)
#define INF 0x3f3f3f3f
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll>PII;
const int N = 2e5 + 50, MOD = 998244353;
​
int a[N];
void solve()
{
    string s;
    //接收字符串
    cin >> s;
    //创建哈希表
    unordered_map<char, int>mymap;
    //遍历字符串的元素
    for (auto& i : s)
    {
        //字符数++
        mymap[i]++;
    }
    //查看哈希表的大小
    if (mymap.size() % 2 == 0)
    {
        cout << "even" << endl;
    }
    else
    {
        cout << "odd" << endl;
    }
}
​
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int t = 1;
    //cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}
​