检查 Python 中字符串中所有字符的频率是否为质数


假设我们有一个字符串 s。我们必须检查 s 中的每个字符出现的次数是否是质数

因此,如果输入为 s = "apuuppa",则输出将为 True,因为有两个“a”、三个“p”和两个“u”。

为了解决这个问题,我们将遵循以下步骤:

  • freq := 包含所有字符及其频率的映射
  • 对于 freq 中的每个 char,执行以下操作
    • 如果 freq[char] > 0 并且 freq[char] 不是质数,则
      • 返回 False
  • 返回 True

让我们看以下实现以获得更好的理解 -

示例代码

现场演示

from collections import defaultdict

def isPrime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
           return False
      return True
   return False
   
def solve(s):
   freq = defaultdict(int)
 
   for i in range(len(s)):
      freq[s[i]] += 1
           
   for char in freq:
      if freq[char] > 0 and isPrime(freq[char]) == False:
         return False
 
   return True

s = "apuuppa"
print(solve(s))

输入

"apuuppa"

输出

True

更新日期:2021 年 1 月 16 日

160 次浏览

开启您的 职业

完成课程以获得认证

开始
广告