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

ตรวจจับการฉ้อโกงของผู้มีสิทธิเลือกตั้งใน Python


สมมติว่าเรามีรายการโหวต โดยที่แต่ละองค์ประกอบในรายการมีสององค์ประกอบ [c_id, v_id] c_id คือ id ของผู้สมัคร และ v_id คือ id ของผู้ลงคะแนน เราต้องตรวจสอบว่าผู้มีสิทธิเลือกตั้งคนใดโหวตมากกว่าหนึ่งครั้งหรือไม่

ดังนั้น หากอินพุตเป็น [[5, 1],[5, 0],[5, 4],[5, 3],[5, 0]] ผลลัพธ์จะเป็น True เป็น [5,0 ] มีอยู่สองครั้ง

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

สร้างชุดใหม่ชื่อทั้งหมด

  • ในการโหวตแต่ละครั้ง ทำ
    • ใส่ (โหวต[1]) เข้าไปทั้งหมด
  • คืนค่าจริงเมื่อขนาดของทั้งหมดไม่เท่ากับขนาดของโหวต

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

ตัวอย่าง

class Solution:
   def solve(self, votes):
      all = set()
      for vote in votes:
         all.add(vote[1])
      return len(all) != len(votes)
ob = Solution()
votes = [[5, 1],[5, 0],[5, 4],[5, 3],[5, 0]]
print(ob.solve(votes))

อินพุต

[[5, 1],[5, 0],[5, 4],[5, 3],[5, 0]]

ผลลัพธ์

True