首页 文章资讯内容详情

老板在Python中战斗

2026-06-04 1 花语

假设我们有一个名为fighters的二进制列表和另一个名为bosss的二进制列表。在战斗机列表中,1代表战斗机。同样,在老板列表1中代表老板。如果战士比老板多,那么战士就可以击败老板。我们必须返回删除了失败的老板行的新老板矩阵。

因此,如果输入像战斗机=[0,1,1]

01个100000101个11个1个1

那么输出将是

01个11个1个1个

为了解决这个问题,我们将遵循以下步骤-

fighter_cnt:=战斗机所有元素的总和

结果:=一个新列表

对于老板的每一行,

在结果末尾插入行

如果fighter_cnt<=行中每个元素的总和,则

返回结果

让我们看下面的实现以更好地理解-

示例

现场演示

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

输入值

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

输出结果

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