Python中的Boss戰鬥


假設我們有一個名為fighters的二進位制列表和另一個名為bosses的二進位制列表列表。在fighters列表中,1代表一個戰士。類似地,在bosses列表中,1代表一個Boss。如果戰士的數量多於Boss的數量,則戰士可以擊敗Boss的行。我們必須返回一個刪除了失敗Boss行的新的bosses矩陣。

因此,如果輸入類似於fighters = [0,1,1]

011
000
001
011
111

那麼輸出將是

011
111

為了解決這個問題,我們將遵循以下步驟:

  • fighter_cnt := fighters所有元素的總和

  • result := 一個新的列表

  • 對於bosses中的每一行,執行:

    • 如果fighter_cnt <= 行中每個元素的總和,則

      • 將行插入result的末尾

  • 返回result

讓我們看看下面的實現以更好地理解:

示例

 線上演示

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

更新於:2020年9月2日

496 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告