概述
题目地址:
https://leetcode.com/problems/remove-letter-to-equalize-frequency/description/
给定一个长 n n n字符串 s s s,必须删一个字符,问能否将其每个字母频率变得相等。
情况较多,分类讨论即可。代码如下:
class Solution {
public:
bool equalFrequency(string s) {
if (s.empty()) return false;
unordered_map<int, int> mp, freq;
for (char ch : s) mp[ch]++;
for (auto &[k, v] : mp) freq[v]++;
if (freq.size() > 2) return false;
if (freq.size() == 1) {
auto &[k, v] = *freq.begin();
return k == 1 || v == 1;
}
if (freq.count(1) && freq[1] == 1) return true;
for (auto &[k, v] : freq)
if (v == 1 && freq.count(k - 1)) return true;
return false;
}
};
时空复杂度 O ( n ) O(n) O(n)。
最后
以上就是冷静小刺猬为你收集整理的【Leetcode】2423. Remove Letter To Equalize Frequency题目地址:的全部内容,希望文章能够帮你解决【Leetcode】2423. Remove Letter To Equalize Frequency题目地址:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复