Giả sử chúng ta có một danh sách các số gọi là num, chúng ta phải kiểm tra xem chúng ta có thể chia danh sách thành 1 hoặc nhiều nhóm sao cho:1. Kích thước của mỗi nhóm lớn hơn hoặc bằng 2. 2. Kích thước của tất cả các nhóm đều như nhau . 3. Tất cả các số có trong mỗi nhóm đều giống nhau.
Vì vậy, nếu đầu vào là [3, 4, 6, 9, 4, 3, 6, 9], thì đầu ra sẽ là True.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- counts:=một bản đồ trong đó mỗi khóa là các phần tử riêng biệt và các giá trị là tần số của chúng
- tạm thời:=0
- đối với mỗi số đếm, hãy thực hiện
- nếu nhiệt độ bằng 0, thì
- temp:=counts [count]
- nếu không,
- temp:=gcd of counts [count] và temp
- nếu nhiệt độ bằng 1, thì
- trả về Sai
- nếu nhiệt độ bằng 0, thì
- trả về True
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
[3, 4, 6, 9, 4, 3, 6, 9]
Đầu ra
True