LeetCode 1941. 检查是否所有字符出现次数相同

216 阅读1分钟

题目地址(1941. 检查是否所有字符出现次数相同)

leetcode-cn.com/problems/ch…

题目描述

给你一个字符串 s ,如果 s 是一个 好 字符串,请你返回 true ,否则请返回 false 。

如果 s 中出现过的 所有 字符的出现次数 相同 ,那么我们称字符串 s 是 好 字符串。

 

示例 1:

输入:s = "abacbc"
输出:true
解释:s 中出现过的字符为 'a''b''c' 。s 中所有字符均出现 2 次。


示例 2:

输入:s = "aaabb"
输出:false
解释:s 中出现过的字符为 'a''b''a' 出现了 3 次,'b' 出现了 2 次,两者出现次数不同。


 

提示:

1 <= s.length <= 1000
s 只包含小写英文字母。

思路

两次Counter就可以

代码

  • 语言支持:Python3

Python3 Code:


class Solution:
    def areOccurrencesEqual(self, s: str) -> bool:
        from collections import Counter
        counter = Counter(s)
        counterVal = Counter(counter.values())
        return len(counterVal) == 1

复杂度分析

令 n 为数组长度。

  • 时间复杂度:O(n)O(n)
  • 空间复杂度:O(n)O(n)