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

โปรแกรมหาผู้ชนะเกมลบอาร์เรย์ใน Python


สมมติว่า Amal และ Bimal กำลังเล่นเกมที่มีอาร์เรย์ A หนึ่งชุดพร้อมตัวเลข กฎของเกมมีดังนี้

  • Bimal จะเริ่มเสมอ
  • ในแต่ละเทิร์นผู้เล่นคนหนึ่งจะลบองค์ประกอบสูงสุดออกจากอาร์เรย์และองค์ประกอบอื่น ๆ ทั้งหมดที่อยู่ทางด้านขวาขององค์ประกอบที่ถูกลบจะถูกลบออกด้วย
  • เล่นสลับกัน
  • ผู้เล่นที่ลบองค์ประกอบที่เหลือทั้งหมดออก เขาจะชนะเกม

ดังนั้นหากอินพุตเป็นเหมือน nums =[5,2,6,3,4] ผลลัพธ์จะเป็น Amal เพราะในตอนแรก Bimal จะลบ [6,3,4] ดังนั้นอาร์เรย์จะเป็น [5,2] แล้วอามาลจะลบทั้งหมด ดังนั้นเขาจะเป็นผู้ชนะ

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

  • สูงสุด :=-1
  • นับ :=0
  • สำหรับแต่ละ a ใน nums ทำ
    • ถ้า a> ค่าสูงสุดไม่ใช่ศูนย์ แล้ว
      • นับ :=นับ + 1
      • สูงสุด :=a
  • ถ้าการนับ mod 2 เหมือนกับ 0 แล้ว
    • ส่งคืน "Amal"
  • ส่งคืน "Bimal"

ตัวอย่าง

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

def solve(nums):
   maximum = -1
   count = 0
   for a in nums:
      if a > maximum:
         count += 1
         maximum = a
   if count % 2 == 0:
      return "Amal"
   return "Bimal"

nums = [5,2,6,3,4]
print(solve(nums))

อินพุต

[5,2,6,3,4]

ผลลัพธ์

Amal