Computer >> Máy Tính >  >> Lập trình >> Python

Số nguyên nhóm trong Python

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
  • 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