Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Trận chiến Boss trong Python

Cho danh sách nhị phân fighters (1 = chiến binh) và ma trận bosses (các hàng là boss, 1 = boss). Chiến binh thắng boss nếu số lượng 1 trong fighters lớn hơn số 1 trong hàng boss. Trả về ma trận boss sau khi loại hàng bị đánh bại.

Ví dụ: fighters = [0,1,1], bosses = [[0,0,0],[0,0,1],[0,1,1],[1,1,1]] → kết quả [[0,1,1],[1,1,1]].

Các bước giải quyết

  • fighter_cnt = sum(fighters)
  • result = []
  • Với mỗi row trong bosses: nếu fighter_cnt <= sum(row) thì thêm vào result
  • Trả về result

Ví dụ mã Python

class Solution:
    def solve(self, fighters, bosses):
        fighter_cnt = sum(fighters)
        result = []
        for row in bosses:
            if fighter_cnt <= sum(row):
                result.append(row)
        return result

ob = Solution()
fighters = [0, 1, 1]
bosses = [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]
print(ob.solve(fighters, bosses))

Đầu vào

[0, 1, 1], [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]

Đầu ra

[[0, 1, 1], [1, 1, 1]]