blob: 8eaf52a1d81b5ab28af9d38403d1298963b4299d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include<iostream>
#include<vector>
#include<string>
#include<unordered_map>
#include<algorithm>
bool frequency_equalizer(const std::string &str)
{
std::unordered_map<char,unsigned> m{};
std::vector<unsigned> vals{};
for(const auto &c : str) m[c]++;
for(const auto& kv : m) vals.push_back(kv.second);
std::sort(vals.begin(),vals.end(),std::greater<>());
if((vals[0] == vals[1]+1) && (vals.back() == vals[1])) return true;
return false;
}
int main()
{
std::cout << std::boolalpha << frequency_equalizer("abbc")<< '\n';
std::cout << std::boolalpha << frequency_equalizer("xyzyyxz")<<'\n';
std::cout << std::boolalpha << frequency_equalizer("xzxz")<< '\n';
return 0;
}
|