[E模拟] lc5804. 检查是否所有字符出现次数相同(模拟+双周赛57_1)
Posted Ypuyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[E模拟] lc5804. 检查是否所有字符出现次数相同(模拟+双周赛57_1)相关的知识,希望对你有一定的参考价值。
1. 题目来源
2. 题目解析
模拟就行了,map 计数 set 去重,很快搞定,但是我还是手速慢了…
- 时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)
- 空间复杂度: O ( n ) O(n) O(n)
代码:
我的代码,手速慢啊…直接插入 set
就好了。
class Solution {
public:
bool areOccurrencesEqual(string s) {
unordered_map<char, int> S;
for (auto c : s) S[c] ++ ;
bool flag = true;
int last = 0;
for (auto [k, v] : S) {
if (flag) last = v, flag = false;
if (v != last) return false;
}
return true;
}
};
前几名大佬的相同思路…
class Solution {
public:
bool areOccurrencesEqual(string s) {
map<char, int> m;
for (auto c : s) m[c] ++ ;
set<int> S;
for (auto [k, v] : m) S.insert(v);
return S.size() == 1;
}
};
以上是关于[E模拟] lc5804. 检查是否所有字符出现次数相同(模拟+双周赛57_1)的主要内容,如果未能解决你的问题,请参考以下文章
[E模拟] lc1886. 判断矩阵经轮转后是否一致(模拟+周赛244_1)
Lc5409_检查一个字符串是否包含所有长度为 K 的二进制子串
Lc5409_检查一个字符串是否包含所有长度为 K 的二进制子串
[E模拟] lc1736. 替换隐藏数字得到的最晚时间(模拟+时间问题+sprintf函数+周赛225_1)