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

โปรแกรมตรวจสอบว่ารายการแบ่งคู่ได้ผลรวมหาร k ลงตัวใน Python


มีรายการ nums และ k ตรวจสอบว่าแบ่งเป็นคู่ได้ทุกคู่ ที่ผลรวมหาร k ลงตัว

เช่น nums=[4,7,2,5], k=6 ให้ True คู่ (4,2) และ (7,5) ผลรวม 6 และ 12 หาร 6 ลงตัว

ขั้นตอนการแก้ปัญหา

  • ถ้าจำนวนสมาชิกคี่ คืน False
  • นับความถี่ modulo k ใน count
  • count[0] ต้องเป็นคู่
  • สำหรับ i=1 ถึง k//2: count[i] == count[k-i]
  • ผ่านทั้งหมดคืน True

ตัวอย่างโค้ด

class Solution:
    def solve(self, nums, k):
        if len(nums) % 2: return False
        count = [0]*k
        for n in nums: count[n%k] += 1
        if count[0] % 2: return False
        for i in range(1, k//2 + 1):
            if count[i] != count[k-i]: return False
        return True

ob = Solution()
nums = [4,7,2,5]; k = 6
print(ob.solve(nums, k))

อินพุต

[4, 7, 2, 5], 6

เอาต์พุต

True