我是靠谱客的博主 冷静小刺猬,最近开发中收集的这篇文章主要介绍【Leetcode】2423. Remove Letter To Equalize Frequency题目地址:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目地址:

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题目地址:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部