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