檢查 Python 中是否可以透過移除一個字元使所有字元的頻率都相同
假設我們有一個小寫字串 s。我們必須檢查刪除一個字元後所有字元的頻率是否相同。
因此,如果輸入類似於 s = "abbc",則輸出將為 True,因為我們可以刪除一個 b 以獲得字串 "abc",其中每個元素的頻率為 1。
為了解決這個問題,我們將遵循以下步驟:
- occurrence := 包含 s 中所有字元及其頻率的對映
- 如果 s 中所有字元的出現次數相同,則
- 返回 True
- 對於 s 中的每個字元,執行以下操作:
- occurrence[char] := occurrence[char] - 1
- 如果 s 中所有字元的出現次數相同,則
- 返回 True
- occurrence[char] := occurrence[char] + 1
- 返回 False
示例
讓我們看看下面的實現以更好地理解:
from collections import defaultdict def allSame(occurrence): counts = list(occurrence.values()) return all(element == counts[0] for element in counts) def solve(s): occurrence = defaultdict(int) for char in s: occurrence[char] += 1 if allSame(occurrence): return True for char in s: occurrence[char] -= 1 if allSame(occurrence): return True occurrence[char] += 1 return False s = "abbc" print(solve(s))
輸入
"abbc"
輸出
True
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP