檢查 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 次瀏覽

開啟您的 職業

完成課程以獲得認證

開始
廣告