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

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

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

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

  • freq:=包含所有字符及其频率的映射

  • 对于频率中的每个字符,执行

    • 返回False

    • 如果freq [char]> 0并且freq [char]不是素数,则

    • 返回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

    猜你喜欢