老板在Python中战斗
假设我们有一个名为fighters的二进制列表和另一个名为bosss的二进制列表。在战斗机列表中,1代表战斗机。同样,在老板列表1中代表老板。如果战士比老板多,那么战士就可以击败老板。我们必须返回删除了失败的老板行的新老板矩阵。
因此,如果输入像战斗机=[0,1,1]
0
1
0
1
1
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]]