Computer >> Máy Tính >  >> Lập trình >> Python

Trò chơi của Bob bằng Python


Giả sử chúng ta có một người bạn tên là Bob và anh ấy đang chơi một trò chơi với chính mình. Anh ta tự cho mình một danh sách các số được gọi là nums. Bây giờ trong mỗi lượt, Bob chọn hai phần tử của danh sách và thay thế chúng bằng một số nguyên dương có tổng bằng các số anh ta đã chọn. Bob tuyên bố chiến thắng khi tất cả các số trong mảng là số chẵn. Chúng ta phải tìm ra số lượt tối thiểu mà Bob yêu cầu để anh ta có thể tuyên bố chiến thắng, nếu không có giải pháp nào như vậy, hãy trả về -1.

Vì vậy, nếu đầu vào là [2, 3, 4, 9, 7, 13], thì đầu ra sẽ là 2 vì anh ta có thể lấy 3,9 sau đó thay thế bằng 12, sau đó lấy 7,13 và thay thế bằng 20.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • a:=một danh sách bằng cách chỉ lấy các phần tử lẻ từ các số

  • nếu kích thước của a là lẻ thì

    • return (kích thước của a) / 2

  • nếu không thì trả về -1

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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]))

Đầu vào

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

Đầu ra

2