在Python中對整數進行分組
假設我們有一個名為nums的數字列表,我們必須檢查我們是否可以將列表拆分為1個或多個組,以便:1. 每個組的大小大於或等於2。2. 所有組的大小相同。3. 每個組中出現的所有數字相同。
因此,如果輸入像[3, 4, 6, 9, 4, 3, 6, 9],則輸出將為真。
要解決此問題,我們將遵循以下步驟——
- counts := 一個對映,其中每個鍵都是不同的元素,值是它們的頻率
- temp := 0
- 對於counts中的每個計數,執行
- 如果temp與0相同,則
- temp := counts[count]
- 否則,
- temp := counts[count]和temp的最大公約數
- 如果temp與1相同,則
- 返回False
- 如果temp與0相同,則
- 返回真
讓我們看以下實現以獲得更好的理解——
示例
from collections import Counter import math class Solution: def solve(self, nums): counts = Counter(nums) temp = 0 for count in counts: if temp == 0: temp = counts[count] else: temp = math.gcd(counts[count], temp) if temp == 1: return False return True ob = Solution() L = [3, 4, 6, 9, 4, 3, 6, 9] print(ob.solve(L))
輸入
[3, 4, 6, 9, 4, 3, 6, 9]
輸出
True
廣告