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

โปรแกรมค้นหา id ของผู้สมัครที่มีคะแนนเสียงข้างมากใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ที่มีค่า n ซึ่งแต่ละหมายเลขแสดงถึงการลงคะแนนให้กับผู้สมัคร เราต้องหารหัสของผู้สมัครที่มีคะแนนเสียงมากกว่าชั้น (n/2) และหากไม่มีคะแนนเสียงข้างมากให้ส่งคืน -1

ดังนั้น หากอินพุตเป็น nums =[6, 6, 2, 2, 3, 3, 3, 3, 3] ผลลัพธ์จะเป็น 3

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

  • l :=ขนาดของ nums
  • จำนวน :=แผนที่ที่มีตัวเลขแต่ละตัวและการเกิดขึ้นของมัน
  • สำหรับแต่ละจำนวน i และการเกิด j ในการนับ ทำ
    • ถ้า j> (l / 2) แล้ว
      • คืนฉัน
  • คืน -1

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

ตัวอย่าง

class Solution:
   def solve(self, nums):
      l = len(nums)
      from collections import Counter
      count = Counter(nums)
      for i, j in count.items():
         if j > (l // 2):
            return i
      return -1
ob = Solution()
nums = [6, 6, 2, 2, 3, 3, 3, 3, 3]
print(ob.solve(nums))

อินพุต

[6, 6, 2, 2, 3, 3, 3, 3, 3]

ผลลัพธ์

3