檢查 Python 中任何字元的頻率是否超過字串長度的一半


假設我們有一個包含小寫字母、大寫字母、數字和特殊字元的字串 s。我們需要檢查是否存在任何一個字元的頻率超過字串長度的一半。

因此,如果輸入類似於 s = "CC*Ca5&CC",則輸出將為 True,因為 'C' 的頻率為 5,字串長度為 9。(5 > 9/2)。

為了解決這個問題,我們將遵循以下步驟:

  • freq := 包含 s 字元頻率的對映
  • 對於 freq 中的每個 ch,執行以下操作:
    • 如果 ch 的頻率 > (s 的大小 / 2),則
      • 返回 True
  • 返回 False

讓我們看一下以下實現,以便更好地理解:

示例程式碼

線上演示

from collections import defaultdict
   
def solve(s):
   freq = defaultdict(int)
 
   for ch in s:
      freq[ch] += 1
 
   for ch in freq:
      if freq[ch] > len(s) // 2:
         return True
 
   return False
   
s = "CC*Ca5&CC"
print(solve(s))

輸入

"CC*Ca5&CC"

輸出

True

更新於: 2021年1月15日

152 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.