Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จำนวนเต็มกลุ่มใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่าเราสามารถแยกรายการออกเป็น 1 กลุ่มหรือมากกว่านั้นได้หรือไม่ ดังนี้ 1. ขนาดของแต่ละกลุ่มมากกว่าหรือเท่ากับ 2. 2. ขนาดของกลุ่มทั้งหมดเท่ากัน . 3. ตัวเลขทั้งหมดในแต่ละกลุ่มเหมือนกัน

ดังนั้น หากอินพุตเป็นแบบ [3, 4, 6, 9, 4, 3, 6, 9] เอาต์พุตจะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • จำนวน :=แผนที่ที่แต่ละคีย์เป็นองค์ประกอบที่แตกต่างกัน และค่าคือความถี่
  • อุณหภูมิ :=0
  • สำหรับการนับแต่ละครั้ง ให้ทำ
    • ถ้าอุณหภูมิเท่ากับ 0 แล้ว
      • อุณหภูมิ :=นับ[นับ]
    • มิฉะนั้น
      • อุณหภูมิ :=gcd ของการนับ[นับ] และอุณหภูมิ
    • ถ้าอุณหภูมิเท่ากับ 1 แล้ว
      • คืนค่าเท็จ
  • คืนค่า True

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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