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

เกมของ Bob ใน Python


สมมุติว่าเรามีเพื่อนชื่อบ๊อบ และกำลังเล่นเกมกับตัวเอง เขาให้รายชื่อหมายเลขที่เรียกว่า nums แก่ตัวเอง ในแต่ละเทิร์น บ๊อบจะเลือกสององค์ประกอบของรายการและแทนที่ด้วยจำนวนเต็มบวกหนึ่งตัวด้วยผลรวมเดียวกันกับตัวเลขที่เขาเลือก บ๊อบประกาศชัยชนะเมื่อจำนวนทั้งหมดในอาร์เรย์เป็นเลขคู่ เราต้องหาจำนวนเทิร์นขั้นต่ำที่ Bob ต้องทำ เพื่อที่เขาจะได้ประกาศชัยชนะ หากไม่มีวิธีแก้ปัญหา ให้คืนค่า -1

ดังนั้น หากอินพุตเป็น [2, 3, 4, 9, 7, 13] ผลลัพธ์จะเป็น 2 เนื่องจากเขาสามารถรับ 3.9 ได้ จากนั้นแทนที่ด้วย 12 จากนั้นใช้ 7,13 และแทนที่ด้วย 20

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

  • a :=รายการโดยนำองค์ประกอบคี่จากตัวเลขเท่านั้น

  • ถ้าขนาดของ a เป็นคี่ แล้ว

    • ผลตอบแทน (ขนาด)/2

  • มิฉะนั้นให้ส่งคืน -1

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

ตัวอย่าง

class Solution:
   def solve(self, nums):
      a = [x for x in nums if x %2 == 1]
      if len(a) %2 == 0:
         return len(a)/2;
      return -1;
ob = Solution()
print(ob.solve([2, 3, 4, 9, 7, 13]))

อินพุต

[2, 3, 4, 9, 7, 13]

ผลลัพธ์

2